2014-10-08 178 views
1

我使用Standalone PsychoPy v1.80.03编程了一个点探针范例。点探针后,我需要一个修改后的任务,看起来像点探针一样。因此,我在第二个任务的构造函数中传递点探测对象以重新使用窗口和绑定到此窗口的激励容器。PsychoPy重新打开窗口

然而,在第二项任务开始之前,我需要使用gui.DlgFromDict输入一些信息(例如条件)。点探针窗口仍处于全屏状态时,无法到达对话框。

我试图通过dotProbe.window.fullscr = False后跟dotProbe.window.flip()将全屏更改为false,但一旦窗口被实例化,更改此属性似乎没有效果。

使用dotProbe.window.close()关闭窗口可以访问对话框,但是没有功能可以再次打开窗口继续执行第二个任务。当然,我可以构建一个新窗口,但正如我所说的,我需要与完全相同位置和所有其他参数的刺激相同的设置。将所有参数从一个脚本复制到另一个脚本以“手动”确保它们看起来完全相同是不受欢迎的 - 就像在点探针之前为第二个任务提供输入这样的解决方法,因为脚本应该可以独立运行(如果没有点探针对象在构造函数中提供,创建一个新对象以提供默认外观)。

感谢您的帮助!

回答

3

你不想关闭窗口:它实际上会破坏整个对象,连同它的所有刺激和其他属性。

一个解决类似的问题被张贴在这里:https://groups.google.com/forum/#!msg/psychopy-users/zq2E12vnYiI/6mXirJMlq3cJ

据扬克莱默那里(和jashubbard这里后续改进:https://discourse.psychopy.org/t/bug-user-defined-gui-does-not-display-in-full-screen-on-mac-osx/2214/3),我想你想使用类似:

win.winHandle.minimize() # minimise the PsychoPy window 
win.winHandle.set_fullscreen(False) # disable fullscreen 
win.flip() # redraw the (minimised) window 

这会隐藏窗口而不是关闭它。然后恢复它:

win.winHandle.maximize() 
win.winHandle.set_fullscreen(True) 
win.winHandle.activate() 
win.flip() 
+1

这工作得很好,谢谢! winHandle对象没有记录在[API](http://www.psychopy.org/api/visual/window.html)中。有没有机会直接找到这些宝石,而不会问问碰巧知道的人? ;) – 2014-10-13 13:35:58

+0

嗨马里奥,文档总是可以改进的:志愿者大大鼓励:-)但我们也希望StackOverflow的问题和答案将以一种对初学者来说不那么神秘的方式提供容易的Googleable答案,而不是通过API进行挖掘文档或通过邮件列表存档的长线程。所以,感谢您将您的问题标记为“已回答”并提供反馈意见:它有助于未来的人们提供相同的查询。 – 2014-10-15 07:29:05

+1

我明白了。再次感谢!只要我将我的声望提高到15,我也会将您的答案标记为有用:P – 2014-10-15 14:16:28