退出PsychoPy窗口

时间:2013-11-12 20:44:53

标签: python macos psychopy

我在编码器视图中单步执行一些PsychoPy代码,然后运行Window函数:

http://www.psychopy.org/api/visual/window.html

这有一个有用的副作用,打开一个灰色的窗口,并没有绑定任何键退出。在这种情况下如何退出?我在运行Snow Leopard的Mac上。

我尝试使用Finder(Command + Space)打开终端窗口并输入killall psychopy,但这无效。也许killall PsychoPy2会更有效,但这是一个非常不幸的方法来杀死一个错误的PsychoPy过程 - 特别是当你看不到你是否打开了一个终端窗口并且你正在打字时。是否有一个秘密按键组合,将始终释放PsychoPy在屏幕上的保持?

4 个答案:

答案 0 :(得分:1)

尝试使用:

if 'escape' in event.waitKeys():
    core.quit()

答案 1 :(得分:1)

如果你打开一个控制台,你可以杀死你脚本留下的所有东西:

from psychopy import core
core.quit()

或者,只需关闭悬挂窗口:

from psychopy import visual
visual.Window.close()

答案 2 :(得分:1)

没有一个魔术按键始终可以用于关闭窗口或从进程中逃脱。我强烈建议您使用fullscr = False开发实验,然后在最后阶段和运行主题中更改为fullscr = True。 (此开关位于Builder>实验设置>屏幕>全屏窗口 - 取消选中框,或在代码中创建Window实例时的fullscr = False参数。)更容易来回切换关闭僵尸窗口,如果你不是全屏模式。

在Builder中,'逃避' key通常会像魔术键一样工作,但只是因为Builder生成的某些代码专门用于侦听' escape'密钥,如果有一个,将会纾困。 (编译Builder脚本并查看代码!)。请注意,有一个实验设置允许您禁用转义,因此即使这样也无法保证正常工作。

从Coder开始,如果你制作一个这样的2行程序并运行,它会在窗口结束时关闭窗口:

from psychopy import visual
w = visual.Window()

core.quit()放在代码中的某个位置将与结尾处的脚本具有相同的效果(即窗口将关闭正常)。

如果你已经创建了一个窗口,你可以在不退出PsychoPy的情况下关闭它,但你必须知道如何引用该窗口实例并告诉它在下面的例子中关闭() - w1

from psychopy import visual
w1 = visual.Window()
w1.close()
# do other things here, perhaps a GUI
w2 = visual.Window()  # another, new window pops open

多个窗口关闭和重新打开并不常见 - 如果您发现自己这样做,那么可能有更好的方法。但它确实说明了如何关闭窗口。

答案 3 :(得分:0)

我经常使用这段代码来获取以非阻塞方式退出实验的密钥:

while True:
        keys = event.getKeys()
        if keys:
            # q quits the experiment
            if keys[0] == 'q':
                core.quit()