Я пытаюсь создать приложение с основным окном и фоновый поток, который проверяет определенное условие в цикле и когда условие выполняется, приносит главное окно перед. Для вывода окна на передний план я использую метод lift()
, но он не работает. Так что я сделал следующий эксперимент из командной строки: питонметод lift() пакета Python Tkinter не работает
from Tkinter import *
root = Tk()
появляется окно ок. Минимизировать окно и затем:
root.lift()
Ничего не происходит. Я также попробовал запустить главное окно окна до подъема:
import thread
# start mainloop in separate thread so we can continue typing
thread.start_new_thread(root.mainloop,())
root.lift()
Опять же, ничего не происходит. В моем фактическом коде это еще хуже - однажды я звоню lift()
, окно застряло и перестает отвечать.
Что я делаю неправильно?
(я использую Python 2.7.2 на Windows 7.)
ОК. В предыдущем эксперименте я попытался сделать вывод, и он работает. Благодарю. Как использовать поток для обновления окна? Есть ли какой-либо механизм обмена сообщениями в Windows? – roel
Вам нужно использовать очередь. В stackoverflow есть несколько примеров. Например, http://stackoverflow.com/a/1198288/7432 –
Спасибо за подсказку. Я использовал метод 'after' из примера в ссылке и решил мою проблему. – roel