5

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

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

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

我尝试使用 Finder(Command+Space)打开终端窗口并输入killall psychopy,但这并不有效。也许killall PsychoPy2会更有效,但这是杀死错误的 PsychoPy 进程的一种非常不幸的方法 - 特别是当您看不到是否打开了终端窗口以及是否正在输入时。是否有一个秘密的击键组合总是会释放 PsychoPy 在屏幕上的控制?

4

4 回答 4

1

试一试:

if 'escape' in event.waitKeys():
    core.quit()
于 2014-03-20T14:20:24.333 回答
1

如果您打开了一个控制台,您可以像这样杀死脚本留下的所有内容:

from psychopy import core
core.quit()

或者,仅关闭悬挂窗口:

from psychopy import visual
visual.Window.close()
于 2014-05-02T09:26:50.707 回答
1

没有一个神奇的按键可以始终用于关闭窗口或退出进程。我强烈建议您使用 fullscr=False 开发您的实验,然后在最后阶段更改为 fullscr=True 并用于运行主题。(此开关位于 Builder > Experiment settings > Screen > Full-screen Window -- 取消选中复选框,或在代码中创建 Window 实例时使用 fullscr=False 参数。)您未处于全屏模式。

在 Builder 中,'escape' 键通常会像魔术键一样工作,但这只是因为 Builder 生成的一些代码专门监听 'escape' 键,如果它得到一个就会退出。(编译一个 Builder 脚本并检查代码!)。请注意,有一个实验设置允许您禁用转义,因此即使这样也不能保证有效。

在 Coder 中,如果您编写这样的 2 行程序并运行,它会在结束时自行关闭窗口:

from psychopy import visual
w = visual.Window()

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

如果您已经创建了一个窗口,您可以在不退出 PsychoPy 的情况下关闭它,但您必须知道如何引用该窗口实例并告诉它 close() -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

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

于 2014-05-11T16:19:12.243 回答
0

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

while True:
        keys = event.getKeys()
        if keys:
            # q quits the experiment
            if keys[0] == 'q':
                core.quit()
于 2015-09-16T11:30:43.757 回答