Я нашел следующий код для создания и рисования масштабатора.
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: