Adding a Rating Scale GUI
There are examples in the ExampleScripts folder under "RatingScale_GUI" to see how to have the rating available. You can use different yield statements to trigger the rating GUI to show up.
Add this line to show a rating:
yield sightlab.showRatings('What Is Your Answer?')
Can set Choice Text and adjust options, such as pausing the timer
yield sightlab.showRatings('What Is Your Answer?', ratingScale = ["Yes", "No", "Unsure"], pauseTimer = True)
import sightlab_utils.sightlab as sl
from sightlab_utils.settings import *
sightlab = sl.SightLab()
scaleList = ["Yes", "No", "Unsure"]
def sightLabExperiment():
while True:
yield viztask.waitKeyDown(' ')
yield sightlab.startTrial()
yield viztask.waitKeyDown(' ')
yield sightlab.showRatings('What Is Your Answer?', ratingScale = scaleList, pauseTimer = True)
yield sightlab.endTrial()
viztask.schedule(sightlab.runExperiment)
viztask.schedule(sightLabExperiment)
For getting access to the rating value you can use this code:
chosen_rating = sightlab.ratingChoice
And for something to change based on the rating value:
if chosen_rating >= 8:
print("Rating too high.")
There are many options available to trigger an event. Here are just a few examples:
Standard viztask commands, such as when a media file stops playing, an animation finishes or a button is pressed.
Using proximity sensors with vizproximity.waitEnter (if you have a proximity sensor already setup, for more on proximity sensors see here)
Using a grab event to be triggered when an object is grabbed.
A gaze event (i.e. when you view an object), see the example RatingScale_after_view for this scenario in the ExampleScripts folder
And much more
When you run the experiment now the rating will show up after the specified trigger. Use the right hand trigger to proceed and the left and right trackpad or thumbstick to choose the answers. For the desktop use the left mouse button and arrow keys.
The chosen values will also be saved in the trial_data.csv file
Attributes:
Can set ratingScale to be any string
scaleList = ["Yes", "No", "Unsure"]
showRatings(message, ratingScale = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10'], color = viz.WHITE, characterLimit = 8, pauseTimer = False)
yield sightlab.showRatings('What Is Your Answer?', ratingScale = scaleList, pauseTimer = True)
There is also the option for a startRating or endRating (note: If using this method with the GUI it is best to set the Start and End conditions to 'None' and use code to set the start and end conditions).
yield sightlab.endTrial( endRatings = {'message': 'Which One Do You Prefer?', 'ratingScale': ["Left","Right"]})