psychopy.org | Reference | Downloads | Github

Is there a way to require a response for a rating scale in the coder?

Using the current code, participants are able to advance through the pictures by clicking “space”. Is there a way to require a response on the rating scales (left or right) in addition to “space”?

Relevant code below:

ratingScale = visual.RatingScale(win, choices=['Old', 'New'], markerStart=0.5, acceptKeys=['space'], pos= (0.0, -0.46), disappear=True, noMouse=True, skipKeys=None)

def Present_and_Record():
    trial_count = 0
    for stim in Pos_List:
        Response = []
        Pic_to_Draw = visual.ImageStim(win, image=str(stim))
        clock.reset()
        while ratingScale.noResponse:
            Pic_to_Draw.draw()
            ratingScale.draw()
            win.flip()
            Response = ratingScale.getRating()
        trial_count = trial_count + 1
        decisionTime = ratingScale.getRT()
        choiceHistory = ratingScale.getHistory()
        d['Stimulus'].append((stim))
        d['Response_Type'].append((Response))
        d['Reaction_Time'].append((decisionTime))
        d['choiceHistory'].append((choiceHistory))
        ratingScale.reset()  # reset between repeated uses of the same rating scale
        Response = []

Are you trying to get, e.g., left for old and right for new? Perhaps the respKeys parameter is the one to use here (see documentation here).

Thank you for the suggestion. I tried the respKeys function- it works as well but does not address the issue of advancing to the next image (iterating through the list). The problem is that participants are able to simply click “space” without making a selection and proceed to the next screen. I am curious if there is a way for the “space” or any acceptKeys to work after a response has been made.