Form Component¶
The Form component enables Psychopy to be used as a questionnaire tool, where participants can be presented with a series of questions requiring responses. Form items, defined as questions and response pairs, are presented simultaneously onscreen with a scrollable viewing window.
Note: We have now introduced Pavlovia Surveys which allow you to create online questionnaires. You can either use them by themselves or in conjunction with your experiments. Click here to watch our Pavlovia Surveys Launch Webinar to find out more.
- Categories:
Responses
- Works in:
PsychoPy, PsychoJS
Note: Since this is still in beta, keep an eye out for bug fixes.
Parameters¶
Basic¶
The required attributes of the stimulus, controlling its basic function and behaviour
- Name
Everything in a PsychoPy® experiment needs a unique name. The name should contain only letters, numbers and underscores (no punctuation marks or spaces).
- Start
When the Form Component should start, see Defining the onset/duration of components.
- Expected start (s)
If you are using frames to control timing of your stimuli, you can add an expected start time to display the component timeline in the routine.
- Start type
How do you want to define your start point?
Options:
time (s)
frame N
condition
- Stop
When the Form Component should stop, see Defining the onset/duration of components.
- Expected duration (s)
If you are using frames to control timing of your stimuli, you can add an expected duration to display the component timeline in the routine.
- Stop type
How do you want to define your end point?
Options:
duration (s)
duration (frames)
time (s)
frame N
condition
- Items
A csv / xlsx file To get started, we recommend selecting the “Open/Create Icon” which will open up a template forms spreadsheet.
A csv/xlsx file should have the following key, value pairs / column headers:
- index
The item index as a number
- itemText
The item question string
- itemWidth
The question width between 0 : 1
- type
The type of rating e.g., ‘choice’, ‘rating’, ‘slider’, ‘free text’
- responseWidth
The question width between 0 : 1
- options
A sequence of tick labels for options e.g., yes, no
- layout
Response object layout e.g., ‘horiz’ or ‘vert’
- itemColor
The question text font color
- responseColor
The response object color
- granularity
If you are using a slider, what do you want the granularity of the slider to be?
Missing column headers will be replaced by default entries, with the exception of itemText and type, which are required. The default entries are:
- index
0 (increments for each item)
- itemWidth
0.7
- responseWidth
0.3
- options
Yes, No
- layout
horiz
- itemColor
from style
- responseColor
from style
- Randomize
Do you want to randomize the order of your questions?
- Data format
Store item data by columns, or rows
Options:
columns
rows
Layout¶
How should the stimulus be laid out on screen? Padding, margins, size, position, etc.
- Size [w,h]
Size of this stimulus (either a single value or x,y pair, e.g. 2.5, [1,2]
- Position [x,y]
Position of this stimulus (e.g. [1,2] )
- Item padding
The padding or space between items.
Appearance¶
How should the stimulus look? Colors, borders, styles, etc.
- Fill color (if :ref:`formcomponent-Style` is “Custom…”)
Color of the form’s background
- Border color (if :ref:`formcomponent-Style` is “Custom…”)
Color of the outline around the form
- Item color (if :ref:`formcomponent-Style` is “Custom…”)
Base text color for questions
- Response color (if :ref:`formcomponent-Style` is “Custom…”)
Base text color for responses, also sets color of lines in sliders and borders of textboxes
- Marker color (if :ref:`formcomponent-Style` is “Custom…”)
Color of markers and the scrollbar
- Styles
Styles determine the appearance of the form
Options:
light
dark
custom…
- Color space
In what format (color space) have you specified the colors? See Color spaces for more info.
Options:
rgb
dkl
lms
hsv
- Opacity
Vary the transparency, from 0.0 (invisible) to 1.0 (opaque)
- Contrast
Contrast of the stimulus (1.0=unchanged contrast, 0.5=decrease contrast, 0.0=uniform/no contrast, -0.5=slightly inverted, -1.0=totally inverted)
Formatting¶
How should this stimulus handle text? Font, spacing, orientation, etc.
- Text height
The size of the item text for Form
- Font
What font should the text be displayed in? Locally, can be a font installed on your computer, saved to the “fonts” folder in your PsychoPy® user folder, or the name of a Google Font. Online, can be any web safe font or a font file added to your resources list in Experiment settings.
Data¶
What information about this Component should be saved?
- Save onset/offset times
Store the onset/offset times in the data file (as well as in the log file).
- Sync timing with screen refresh
Synchronize times with screen refresh (good for visual stimuli and responses based on them)
Testing¶
Tools for testing, debugging and checking the performance of this Component.
- Disable Component
Disable this Component
- Validate with…
Name of the Validator Routine to use to check the timing of this stimulus. Options are generated live, so will vary according to your setup.
Note
Top tip: Form has an attribute to check if all questions have been answered form.complete
. You could use this to make a “submit” button appear only when the form is completed!
See also
API reference for Form