Tkinter не отвечает при использовании онлайн API - PullRequest
0 голосов
/ 23 апреля 2020

Я делаю настольное приложение в Python, используя Tkinter в качестве моего gui интерфейса. Я сталкиваюсь с проблемой, когда при выполнении Astrometry. net API и в этом я использую их client.py . Как только мой фрейм загружен, он имеет одну метку с именем «status_label». Функции в клиентском файле выполняются в следующем порядке: «Login => myjobs => upload». Теперь, когда мой код взаимодействует с API, мой gui интерфейс перестает отвечать. Чтобы проверить это, я даже использовал status_label, чтобы отобразить, какая функция выполняется, изменив текст status_label на имя функции, выполняемой в данный момент перед вызовом функции. Тем не менее, метка не обновляется в конце, а между тем все время, пока она взаимодействует с онлайн-API, весь gui не отвечает.

Как избежать этой проблемы и получить имя функции в этикетка?

1 Ответ

0 голосов
/ 24 апреля 2020

Вероятно, это происходит потому, что API-интерфейс Astronomy совместно использует поток с Tkinter. У вас должен быть другой поток для GUI (Tkinter) и другой для API-интерфейса Astronomy. Таким образом, окно Tkinter будет реагировать, пока ваш код использует API. Вы можете сделать это с многопоточностью .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...