首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >“‘list”对象没有属性“winType”

“‘list”对象没有属性“winType”
EN

Stack Overflow用户
提问于 2017-02-12 15:38:40
回答 2查看 574关注 0票数 0

我试图运行一个python脚本,但是我得到了这个错误。AttributeError: 'list' object has no attribute 'winType'

该文件的实际内容为:

代码语言:javascript
复制
import time
import pylsl
import bci.open_bci_v3 as bci


#from random import random as rand
from pylsl import StreamInfo, StreamOutlet
from psychopy import prefs
prefs.general['audioLib'] = ['pygame']
from psychopy import visual, core, sound 

import esys_cfg

NUM_CHANNELS = 8
SAMP_RATE = 100

info = StreamInfo('OpenBCI', 'EEG', NUM_CHANNELS, SAMP_RATE, 'float32', 'myuid34234')
outlet = StreamOutlet(info)

#funtion call to start displaying images
#def displayStimuli
# for file in os.listdir('directory'):
# for i in range(0,len(images)):

# def display(files, .....):
#   ex: file_name = ['/dir/dir2/img.png']

window = visual.Window([512, 512])

cfg = esys_cfg.create_config('../stimulus-config/test.yml')
print(cfg.trial_order)
#trial_order = ['one', 'two', 'one']

for element in cfg.trial_order: #loop through all elements in array trial_order
  imageIndex = 0
  for imageIndex in range(len(cfg.trials[element].files)):

    stimulis = cfg.trials[element].stimuli_folder + '/' +   cfg.trials[element].files[imageIndex]
    showStim = visual.ImageStim(window, stimulis)
    showStim.draw([window])
    window.flip()
    core.wait(2.0)

我怎样才能纠正这个错误并运行程序?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-02-12 16:02:32

错误出现在行中

代码语言:javascript
复制
showStim.draw([window])

它应该显示为

代码语言:javascript
复制
showStim.draw(window)

如果只有一个窗口,只需执行以下操作

代码语言:javascript
复制
showStim.draw()

它在窗口中绘制showStim是在初始化时作为参数给出的。顺便说一句,初始化一个精神病刺激的计算量很大(很容易花费几百毫秒),所以在脚本开始时做一次,然后在运行时更新相关的方面。在您的情况下,请执行以下操作:

代码语言:javascript
复制
showStim = visual.ImageStim(window)  # initialize the stimulus
for element in cfg.trial_order: #loop through all elements in array trial_order
  imageIndex = 0
  for imageIndex in range(len(cfg.trials[element].files)):
      stimulis = cfg.trials[element].stimuli_folder + '/' +   cfg.trials[element].files[imageIndex]
      showStim.image = stimulus  # update the image
票数 1
EN

Stack Overflow用户

发布于 2017-02-12 15:58:34

由于您只有一个窗口,因此可以使用:

代码语言:javascript
复制
showStim.window = window # stimulus is now drawn to window 
showStim.draw()

如果您有多个窗口,则可以将相关窗口作为参数传递(代码中的括号是多余的)。

代码语言:javascript
复制
# Note that this just changes **default** window for stimulus.
showStim.draw(win1)
showStim.draw(win2)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42185279

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档