为什么完整的scr=True时不显示?

2024-06-01 13:01:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我想显示一个对话框,让一个实验参与者输入一个数字,使用心理变态。当fullscr=False在win中时,显示对话框。当fullscr=True时,它不会出现,即使键入数字然后返回确实会使程序进入下一个循环。在

有什么想法为什么?下面是相关代码行。在

from psychopy import visual, event, core, data, gui, logging
win = visual.Window([1024,768], fullscr=True, units='pix', autoLog=True)

respInfo={}
respInfo['duration']=''
respDlg = gui.DlgFromDict(respInfo)

Tags: 代码from程序falsetrue键入gui数字
1条回答
网友
1楼 · 发布于 2024-06-01 13:01:08

这是因为当fullscr=True时,精神病窗口位于所有其他窗口之上,因此在您的示例中,对话框是创建的,但是用户看不到,因为窗口在上面。在

开始时显示对话框

如果您只想在实验开始时显示一个对话框,解决方案很简单:在创建窗口之前显示对话框:

# Import stuff
from psychopy import visual, gui

# Show dialogue box
respInfo={'duration': ''}
respDlg = gui.DlgFromDict(respInfo)

# Initiate window
win = visual.Window(fullscr=True)

中间显示对话框

如果你想在实验中途显示对话,你需要一个相当复杂的黑客。你需要

  1. 关闭当前窗口
  2. 显示对话框(可以选择在后台使用非全屏窗口来遮住桌面)
  3. 创建一个新窗口(并从步骤2关闭可选窗口
  4. 设置要在新窗口中渲染的所有刺激。因为刺激指向第一个窗口object,所以仅仅创建一个具有相同变量名的新窗口(new object)并不能起到作用。在

下面是一些用单一刺激来演示这种方法的代码:

^{pr2}$

相关问题 更多 >