python – 在引发tkinter帧之前不处理tkinter键盘中断
作者:互联网
我有一个用python tkinter编写的GUI应用程序.在我的工作流程中,我通常从命令行启动gui,在gui中做一些事情,然后我发现自己导航到其他终端窗口做一些工作.不可避免地,我想在某个时刻关闭GUI,出于习惯,我经常只是导航到启动GUI并发送KeyboardInterrupt(Ctrl-c)的终端.但是,在我在窗口管理器中引发GUI窗口之前,不会收到此中断.有谁知道为什么会这样?如果gui是在一个函数中启动的,那么有一个简单的解决方法 – 多处理可能吗?
解决方法:
来自新闻组:
我在Redhat Linux 5.0下使用Python 1.5.我想弄清楚
使用tkinter时捕获SIGINT(或Ctrl-C)的最佳方法.至
说明我遇到的问题,做以下事情……
– 在启用tkinter的情况下构建Python-1.5.
– 进入Python-1.5下的Demo / tkinter / guido目录
建树.
– 输入“python imageview.py image-file”,其中“image-file”是
可显示图像的完整路径名.
– 弹出图像后,确保窗口焦点为
由xterm窗口持有“python …”命令
刚刚被调用.
– 按Ctrl-C.
此时,没有任何反应. Ctrl-C似乎被忽略了.
但现在 …
– 不要再按键盘上的任何键,设置窗口
聚焦到显示的图像窗口.
只要该窗口获得焦点,Ctrl-C就会生效.
我的问题是:有没有办法重组
“imageview.py”程序,以便它将响应SIGINT(Ctrl-C)
立即,无需将窗口焦点设置为显示
图像第一?
提前感谢您的帮助,你们可以给我.
您所看到的是信号处理程序的处理方式.
你被困在Tcl / Tk主循环中,信号处理程序只是
由Python解释器处理.一个快速的解决方法是使用
after()调度一次大约一次调用的虚函数
– 这样可以使您的信号得到及时处理
方式.
–Guido van Rossum
标签:python,tkinter,keyboardinterrupt 来源: https://codeday.me/bug/20190626/1291199.html