python的Tkinter包的lift()方法不起作用

时间:2013-06-30 13:55:06

标签: python tkinter

我正在尝试构建一个带有主窗口的应用程序,以及一个检查循环中某个条件的后台线程,当满足条件时,将主窗口置于前面。 要将窗口置于前面,我使用lift()方法,但它不起作用。 所以我从python命令行做了以下实验:

from Tkinter import *
root = Tk()

出现一个tk窗口。最小化窗口,然后:

root.lift()

什么都没发生。我也尝试在解除之前启动窗口的主循环:

import thread
# start mainloop in separate thread so we can continue typing
thread.start_new_thread(root.mainloop, ())
root.lift()

再一次,没有任何反应。在我的实际代码中,情况更糟 - 一旦我调用lift(),窗口就会卡住并停止响应。

我做错了什么?

(我在Windows 7上使用Python 2.7.2。)

1 个答案:

答案 0 :(得分:1)

您不能在与创建窗口小部件的线程不同的线程中运行mainloop。实际上,您无法从另一个线程与小部件进行交互。

要恢复最小化窗口的效果,您需要使用deiconify方法。