Как закрыть экран загрузки сразу, когда другой поток завершен в Python с использованием Tk? - PullRequest
0 голосов
/ 20 июля 2011

У меня есть Python GUI, который использует Tkinter.Я должен SSH в другое место, чтобы получить данные.Я запускаю новый поток, чтобы сделать это, чтобы графический интерфейс не зависал.В это время я хочу открыть экран, который дает пользователю знать, что он загружается.Как только программа закончит получать данные, я хочу закрыть экран загрузки.Что я должен сделать, чтобы мой основной цикл распознал, что поток завершен?Я пытался использовать этот поток, чтобы закрыть экран загрузки, который существует в главном цикле, но потом я обнаружил, что это не работает.

Я видел некоторые потребительские модели производителей, которые не используют GUI,и у них есть пока петли.Это не помогает мне, хотя.Я также не хочу загружать и устанавливать другие пакеты, но с импортом все в порядке.Спасибо за вашу помощь!

1 Ответ

0 голосов
/ 20 июля 2011

Ваша нить установит флаг, когда это будет сделано.Попросите GUI периодически проверять этот флаг и закрывать окно, когда оно установлено.

Вы можете проверить флаг, создав функцию, которая проверяет флаг, и если она не установлена, она использует after дляснова запустить себя через несколько сотен мс.Окно не исчезнет сразу после выхода из потока, но пока задержка не превышает пары сотен мс, пользователь никогда не заметит.

...