Я играю с контроллером движения, поэтому, чтобы «щелкнуть» кнопку, я выясню, какая кнопка ближе всего к середине в любой заданной точке, а затем с помощью кнопки button.invoke ().Python tkinter button.invoke method problem
Я уверен, что кнопки и настройка работают, потому что всякий раз, когда я нажимаю кнопки, они работают нормально. Однако, когда кнопка вызывается с помощью метода «button.invoke», все это просто зависает.
Дополнительная информация, которая может быть полезна: - Гви обновляется в своей собственной резьбе через функцию .mainloop. - Все работает нормально при нажатии мышью - Метод button.invoke() отлично работает - при выполнении простой операции печати. Он только зависает при переключении кадра.
Любая помощь будет большой, спасибо.
Можете ли вы поделиться некоторым кодом, чтобы показать нам немного больше работы, особенно вокруг того, что происходит внутри 'button.invoke()'? – Oren
Кроме того, вызывается 'button.invoke' из другого потока, чем' mainloop'? Это не является законным в tkinter; он может работать в некоторых случаях, но не в других, или один и тот же случай может работать иногда, но не всегда, или он может работать на одной платформе или версии Tk, но не на другом и т. д., но если он когда-либо работает, это происходит только потому, что вы везучий; это не предполагается. – abarnert
Я думаю, что вы столкнулись с проблемой на голове. Проблема состоит в том, что в потоке A выполняется mainloop(), который просто ждет чего-то, поэтому он никогда не покинет эту строку. Thread B вызывает кнопку при использовании контроллера движения. Я должен по-настоящему изменить свой вопрос на этом этапе: «Как я могу запустить« Mainloop »только в течение конечного времени? Или измените что-то такое, что mainloop обработает изменение» – user2498925