KeyboardInterrupt需要一段时间

Tho*_*lds 7 python tkinter keyboardinterrupt

所以我刚开始使用Tkinter在Linux上乱搞Python.我试图通过使用KeyboardInterrupt异常使Cntrl + C停止执行,但是当我按下它时,暂时没有任何反应.最终它"需要"并退出.一点点阅读表明这可能与线程或其他东西有关,但我对这些东西很新,我真的不知道从哪里开始.

#! /usr/bin/python
import sys
from Tkinter import *

try: 
    root = Tk()
    root.mainloop()
except:
    print "you pressed control c"
    sys.exit(0)
Run Code Online (Sandbox Code Playgroud)

我不想成为只需要快速修复的菜鸟,所以如果你的答案就像指向正确的文档一样简单,那就太棒了.

mmg*_*mgp 8

这有点问题,因为在一般情况下,在调用mainloop方法之后,您依靠Tcl来处理事件.由于您的应用程序什么都不做,因此Tcl没有理由对任何事情作出反应,尽管它最终会处理其他事件(正如您所注意到的,这可能需要一些时间).避免这种情况的一种方法是让Tcl/Tk做一些事情,安排人工事件,如:

from Tkinter import Tk

def check():
    root.after(50, check) # 50 stands for 50 ms.

root = Tk()
root.after(50, check)
root.mainloop()
Run Code Online (Sandbox Code Playgroud)