1

我正在尝试构建一个带有主窗口的应用程序,以及一个在循环中检查某个条件的后台线程,当满足条件时,将主窗口带到前面。要将窗口放在前面,我使用了该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。)

4

1 回答 1

1

您不能在与创建小部件的线程不同的线程中运行主循环。事实上,您根本无法从另一个线程与小部件进行交互。

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

于 2013-06-30T13:59:30.280 回答