MultiTextBox class¶
A text box that can present one or more values during a trial, e.g., to shown an RSVP. You can easily configure the onset and offset time of each of the values to present.
Each value to present is implemented as a separate Expyriment TextBox, which means that:
- You can set the graphical properties (font, size, position, etc.) to have a common value for all presented texts, or a separate value per text.
- Changing from one text to another is not time-consuming, and can be safely done in mid-trial. The only time-consuming operation is when you initialize the stimuli (which should be done at the beginning of the trial)
A MultiTextBox is not by itself a stimulus (e.g., it does not have a present() method). The
stimulus-like methods can be accessed via stimulus
.
Using this class:¶
This class is used in slightly different ways depending on whether or not you use an
EventManager
in your application.
Using MultiTextBox with an EventManager¶
Add
stimulus
into yourStimulusContainer
Call
EventManager.register
to register the MultiTextBox on the event manager.Note: if you modify
trial_configured_event
, this must be done before before callingEventManager.register
.On the beginning of each trial, update the visual properties of the textbox (text, font, size, position, etc.).
Note that these initializations must be completed before the
trial_configured_event
event is dispatched. Changing properties aftertrial_configured_event
was dispatched will have no effect.
Using MultiTextBox without an EventManager¶
- On the beginning of each trial, update the visual properties of the textbox (text, font, size, position, etc.). You do not need to configure the events.
- After these properties were set, call
init_for_trial()
. - To start showing the stimuli, call
start_showing()
. - Call
update_display()
periodically - preferably once per frame.
Other features¶
callback functions: (available also for MultiStimulus
)
You can ask the MultiTextBox class to invoke a function of your choice whenever a text is displayed or hidden. Register your function withregister_onset_offset_callback_func()
Methods and properties:¶
-
class
trajtracker.stimuli.
MultiTextBox
(texts=None, text_font='Arial', text_size=26, text_bold=False, text_italic=False, text_underline=False, text_justification=1, text_colour=(255, 255, 255), background_colour=(0, 0, 0), size=None, position=(0, 0), onset_time=None, duration=None, last_stimulus_remains=False, onset_event=None, terminate_event=<trajtracker.events._Event.Event object>)¶ -
__init__
(texts=None, text_font='Arial', text_size=26, text_bold=False, text_italic=False, text_underline=False, text_justification=1, text_colour=(255, 255, 255), background_colour=(0, 0, 0), size=None, position=(0, 0), onset_time=None, duration=None, last_stimulus_remains=False, onset_event=None, terminate_event=<trajtracker.events._Event.Event object>)¶
-
background_colour
¶ The background color TextBox. This can be either a single tuple (RGB) or a list of tuples, one per shown text
-
duration
¶ The duration of showing each stimulus.
A stimulus disappears when the duration expired or when a terminate_event was dispatched.
Type: list/tuple of numbers
-
get_stimulus_desc
(stimulus_num)¶ Get one of the stimuli (= the text presented)
Parameters: stimulus_num – The index of the text to return Returns: str
-
init_for_trial
()¶ Initialize when a trial starts.
Do not use this function if you are working with the events mechanism.
-
last_stimulus_remains
¶ Whether the last stimulus presented in the sequence should remain on screen (True), or has a limited duration similarly to the previous stimuli (False)
-
log_level
¶ Logging level of this object: trajtracker.log_none, log_error (default), log_warn, log_info, log_debug, log_trace
-
onset_event
¶ The event which serves as a reference point for displaying stimul. All onset_time’s are indicated relatively to this event.
Note: This property is relevant only when working with events (with an
EventManager
)
-
onset_time
¶ The onset time of each stimulus, relatively to the onset_event.
Type: list/tuple of numbers
-
position
¶ The position of the stimuli to show (x,y). This can be either a single tuple or a list of tuples, one per shown value
-
register_onset_offset_callback_func
(func)¶ Register a function that should be called when a stimulus is shown/hidden
Parameters: func – The function, which gets 4 parameters:
- The MultiStimulus/MultiTextBox object
- The stimulus/text number (0=first)
- Whether the stimulus is presented (True) or hidden (False)
- The time when the corresponding present() function returned
-
size
¶ The size of the TextBox (width,height). This can be either a single tuple or a list of tuples, one per shown text
-
start_showing
(time)¶ When working without events: this sets time=0 for the texts to show (i.e., the
onset_time
are relatively to this time point).This function will also invoke
update_display()
.Do not use this function if you are working with the events mechanism.
Parameters: time – The time in the current session/trial. This must be synchronized with the “time” argument of update_display()
-
stim_visibility
¶ Return an array of booleans, indicating whether each stimulus is presently visible or not. The array has as many elements as
text
-
stimulus
¶ A single stimulus that represents all the stimuli in this MultiTextBox
Type: StimulusContainer
-
terminate_event
¶ An event that terminates the display of stimuli, including the display of stimuli that are still scheduled to appear. Default: TRIAL_ENDED.
You can set to None to disable termination; however, note that in this case you might get strange behavior if the next trial starts while the stimuli are still being shown. To prevent this, you’ll have to take care yourself of cleaning up pending operations from the event manager.
Note: This property is relevant only when working with events (and with an
EventManager
)
-
text_bold
¶ Whether the text is bold (bool) This can be either a single value or a list of values, one per shown text
-
text_colour
¶ The color of the text to show. This can be either a single tuple (RGB) or a list of tuples, one per shown text
-
text_font
¶ The font name (str) This can be either a single value or a list of values, one per shown text
-
text_italic
¶ Whether the text is in italic font (bool) This can be either a single value or a list of values, one per shown text
-
text_justification
¶ The horizontal justification of the text. 0=left, 1=center, 2=right. This can be either a single value or a list of values, one per shown text
-
text_size
¶ The font size (int) This can be either a single value or a list of values, one per shown text
-
text_underline
¶ Whether the text is underlined (bool) This can be either a single value or a list of values, one per shown text
-
texts
¶ The texts to show (a list of strings)
-
trial_configured_event
¶ An event indicating the time when the per-trial information was configured. By default, this is the TRIAL_INIITALIZED event.
Note:
- This property is relevant only when working with events (and with an
EventManager
) - The property cannot be changed after the object was registered to an
EventManager
- This property is relevant only when working with events (and with an
-
unregister_onset_offset_callback_func
(func)¶ Unegister a callback function previously registered with unregister_onset_offset_callback_func()
Parameters: func – The function
-
update_display
(time)¶ Set relevant stimuli as visible/invisible.
Do not use this function if you are working with the events mechanism.
Parameters: time – The time in the current session/trial. This must be synchronized with the “time” argument of start_showing()
-