Тк messagebox.аскиесно теряю проблему фокуса - PullRequest
0 голосов
/ 27 января 2020

Я пытаюсь создать программу автоотключения. Я спрашиваю пользователя, хотят ли они прервать завершение работы с помощью messagebox.askyesno (tkinter), но когда я запускаю

system('shutdown /s')

, появляется окно windows, говорящее: «Вы собираетесь выйти менее чем за минута "и есть кнопка закрытия и на заднем плане, окно сообщения появляется с этим кодом

root = Tk()
root.withdraw()
ans = messagebox.askyesno("Auto Shutdown", "Your machine is about to be shutdown. Do you want to abort?")

, и когда я нажимаю кнопку" Закрыть "из всплывающего окна windows, окно сообщения теряет focus (исчезает). Он существует, но недоступен.

Я думал, что root.grab_set сработает. Поэтому я создал поток, который постоянно проверяет, находится ли в окне сообщения фокус, и если нет, то запускает root.grab_set в ожидании. для ввода от пользователя это дает мне эту ошибку:

RuntimeError: main thread is not in main loop

как я могу сделать так, чтобы, когда я нажимаю «закрыть» и всплывающее окно windows исчезало, окно сообщения все еще остается на экране.

Пожалуйста, предложите более чистый способ сделать это, если это возможно.

Спасибо

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