因此,就像问题所说的,我试图让键盘中断在Gtk.main()进行时发生,然而,它似乎只是在函数完成之后才注意到键盘中断发生。
因此,我尝试将Gtk.main()放在一个单独的线程中,让主线程找到键盘中断并终止线程,但随后发现Gtk不能像this article中描述的那样很好地处理线程
我想不出其他让键盘中断工作的方法了。这个是可能的吗?
我正在使用python3,并希望我的程序最终是跨平台的。
发布于 2015-11-21 03:35:39
被接受的答案对我不起作用。我解决了这个问题,将Gtk.main()
调用替换为GLib.MainLoop().run()
,如bug report中所述。
发布于 2015-12-28 04:22:30
在使用SIGINT模块覆盖SIGINT处理程序( python线程上100%的CPU )时,我也遇到了麻烦;我的另一种选择是:
def main():
self.mainloop = GObject.MainLoop()
try:
self.mainloop.run()
except KeyboardInterrupt:
logger.info('Ctrl+C hit, quitting')
self.exit()
def exit():
self.mainloop.quit()
https://stackoverflow.com/questions/16410852
复制相似问题