正如问题所说,我试图让键盘在Gtk时中断.main()正在进行中,但是它似乎没有注意到键盘中断发生在函数完成之后.

所以我试着用Gtk.main()在一个单独的线程中,让主线程找到键盘中断,并终止线程,但随后发现Gtk不能很好地处理this article中描述的线程

我想不出任何其他方法可以让键盘中断工作.这可能吗?

我正在使用python3,希望我的程序最终能够跨平台运行.

推荐答案

因为在终端上使用Ctrl+C时,使用pygobject编写的https://bugzilla.gnome.org/show_bug.cgi?id=622084个gtk应用程序不会自动关闭.

要解决此问题,可以安装Unix信号处理程序,如下所示:

if __name__ == '__main__':
    import signal
    signal.signal(signal.SIGINT, signal.SIG_DFL)
    your_application_main()

Python-3.x相关问答推荐

海象表达可以放在方括号中而不是括号中吗?

正则表达式匹配并提取括号前的单词

如何检索与美汤相似的标签中的文本?

基于另一个数据帧计算总和

我们可以在每个可以使用 Pandas Join 的用例中使用 Pandas merge 吗?

通过在不重新索引的情况下采用最高概率的百分比,有效地转换 0/1 列表中的概率列表

过滤列表中的所有字典以使用特定键并忽略其他键?

类不继承时 super() 的用途

缺失时推断的数据类可选字段

正则表达式:匹配字符串中的分隔符(字母和特殊字符)以形成新的子字符串

判断是否存在大文件而不下载它

Python从base64转换为二进制

将字节数组转换为类似字节的对象?

如何在元素列表中找到最大的数字,可能是非唯一的?

如何使用 d.items() 更改 for 循环中的所有字典键?

BeautifulSoup 的 Python 3 兼容性

Windows 下 Python 3.x 的 OpenCV

如何强制 Sphinx 使用 Python 3.x 解释器

Beautifulsoup 的单元测试失败

如何从 seaborn / matplotlib 图中删除或隐藏 x 轴标签