我的窗体上有两个按钮,当我按下按钮时,它会保持按下状态,并且框架保持无响应状态,直到按钮1的操作完成为止,在我的情况下,我调用保持打开状态的新xterm窗口,并且使用按钮2我想打开新的xterm但直到我从button1命令关闭xterm窗口之前,整个GUI都没有响应。
这是为什么?
谢谢,我两天前开始使用 TKinter,所以放轻松点:)
Tkinter 在单线程中工作。所以当你按下按钮时,回调命令显然很长时间没有返回。这会导致 Tkinter GUI 冻结,直到回调命令返回。
如果可能的话,解决方案是将回调命令分成更小的部分,可能是一个循环,然后调用update_idletasks() http://effbot.org/tkinterbook/widget.htm#widget.Widget.update_idletasks-method足够频繁以允许 Tkinter GUI 更新。
如果这是不可能的,那么回调命令应该产生一个线程 http://blog.doughellmann.com/2008/01/pymotw-threading_13.html因此它的执行不会阻塞 Tkinter 主事件循环。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)