没有人感兴趣,所以让我尝试.
只是在同一页面上:
import signal
from gi.repository import GObject
GObject.threads_init()
mainloop = GObject.MainLoop()
signal.signal(signal.SIGINT, lambda n, f: mainloop.quit())
mainloop.run()
此代码有效:
import signal
from gi.repository import GObject
signal.signal(signal.SIGINT, lambda n, f: print("kill"))
GObject.threads_init()
mainloop = GObject.MainLoop()
mainloop.run()
我先注册了信号处理程序,然后启动了循环.奇怪的是它没有被调用.但是结果是-符合预期…
附带说明-根据他们的文档,不赞成使用mainloop.那是第一件事.
编辑
这是从MainLoop内部的stdin读取的示例:
import signal
import sys
from gi.repository import GObject, GLib
GObject.threads_init()
def readInput():
print('readInput
')
while True:
input = sys.stdin.readline()
print(input)
if input.strip() == 'exit':
<