我在编码器视图中单步执行一些PsychoPy代码,然后运行Window函数:
http://www.psychopy.org/api/visual/window.html
这有一个有用的副作用,打开一个灰色的窗口,并没有绑定任何键退出。在这种情况下如何退出?我在运行Snow Leopard的Mac上。
我尝试使用Finder(Command + Space)打开终端窗口并输入killall psychopy
,但这无效。也许killall PsychoPy2
会更有效,但这是一个非常不幸的方法来杀死一个错误的PsychoPy过程 - 特别是当你看不到你是否打开了一个终端窗口并且你正在打字时。是否有一个秘密按键组合,将始终释放PsychoPy在屏幕上的保持?
答案 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()