KeyError: 'deg' при рисовании скейлера с помощью Psychopy - PullRequest
1 голос
/ 25 мая 2020

Я нашел следующий код для создания и рисования масштабатора.

from psychopy.visual.window import Window
from psychopy.visual.slider import Slider

mywin = Window()

vection_scale = Slider(mywin,
             ticks=(1, 100),
             labels=('No Vection', 'Strong Vection'),
             granularity=1,
             color='white',
             size = (0.99,0.05))

while not vection_scale.rating:
    vection_scale.draw()
    mywin.flip()

vection_rating = vection_scale.rating
RT_rating = vection_scale.rt
print(vection_rating,RT_rating)

print(f'Rating: {vection_scale.rating}, RT: {vection_scale.rt}')

mywin.close()

Код отлично работает, когда mywin = Window() - когда я не помещаю аргументы в оконную функцию.

После интеграции этого фрагмента кода в код моего эксперимента с моей спецификацией окна, как показано ниже:

#Monitor settings
widthPix = 1400 # screen width in px
heightPix = 900 # screen height in px
monitorwidth = 53.1 # monitor width in cm
viewdist = 60. # viewing distance in cm
monitorname = 'BOE CQ LCD'
scrn = 0 # 0 to use main screen, 1 to use external screen
mon = monitors.Monitor(monitorname, width=monitorwidth, distance=viewdist)
mon.setSizePix((widthPix, heightPix))

# Create a window
win = psychopy.visual.Window(
    monitor=mon, 
    #size=(1000, 800),
    size=(widthPix,heightPix),
    color='Black',
    colorSpace='rgb',
    units='deg',
    screen=scrn,
    allowGUI=True,
    fullscr=False)

, я получаю эту ошибку. Проблема в том, что мне нужно units = 'deg', чтобы нарисовать стимулы.

--------------------------------------------------------------------------- KeyError                                  Traceback (most recent call last) <ipython-input-1-ebcaf2ecf00b> in <module>
    117 # ---------------------------------------- Create Scale to Rate Feeling of Vection
------------------------------------------------------------------------
    118 
--> 119 vection_scale = Slider(win,ticks=(1, 100),labels=('No Vection', 'Strong Vection'),granularity=1,color='white')
    120 
    121 # ----------------------------------------- Start Experiment ------------------------------------------------------------------------------------

~/opt/anaconda3/lib/python3.7/site-packages/psychopy/visual/slider.py in __init__(self, win, ticks, labels, pos, size, units, flip, style, granularity, readOnly, color, font, depth, name, labelHeight, labelWrapWidth, autoDraw, autoLog)
    140 
    141         if size is None:
--> 142             self._size = defaultSizes[self.units]
    143         else:
    144             self._size = size

KeyError: 'deg'

Как мне преодолеть это препятствие? заранее спасибо за вашу помощь: small_smile:

...