【问题标题】:PsychoPy reopen windowPsychoPy 重新打开窗口
【发布时间】:2014-10-08 12:58:00
【问题描述】:

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

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

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

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

感谢您的帮助!

【问题讨论】:

    标签: python oop window psychopy


    【解决方案1】:

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

    类似问题的解决方案已在此处发布:https://groups.google.com/forum/#!msg/psychopy-users/zq2E12vnYiI/6mXirJMlq3cJ

    根据 Jan Kramer 的说法(以及对 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()
    

    【讨论】:

    • 这很好用,谢谢! API 中没有记录 winHandle 对象。有没有机会直接找到这些宝石而不问碰巧知道的人? ;)
    • 嗨,马里奥,文档总是可以改进的:非常鼓励志愿者 :-) 但我们也希望 StackOverflow 上的问题和答案能够以一种对初学者来说不那么神秘的方式提供易于谷歌搜索的答案而不是通过 API 文档或邮件列表存档中的长线程来挖掘。因此,感谢您将您的问题标记为“已回答”并提供反馈:它可以帮助将来有相同问题的人。
    • 我明白了。再次感谢!一旦我的声誉达到 15,我也会将您的答案标记为有用:P
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-24
    • 2016-12-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多