python 3.6.1, windows 10, ткинтер
при сворачивании приложения с текущим открытым модальным окном (путем встряхивания окна или нажатия кнопки «Показать рабочий стол») оно блокирует все усилия по максимизации / отмене / восстановлению окна, оставляя его застрявшим снятым
уже активно гуглил, и, похоже, это проблема, которая была «решена» еще в python 2.7, а тестирование под windows 7 - не проблема на 3.6.
import tkinter as tk
class GUI:
def __init__(self, master):
self.master = master
self.button = tk.Button(master, text='open modal', command=self.openModal)
self.button.pack()
def openModal(self):
self.modal = tk.Toplevel(self.master)
self.modal.wm_transient(self.master)
self.modal.grab_set()
self.deiconifyButton = tk.Button(self.modal, text='deiconify me', command=self.master.deiconify)
self.deiconifyButton.pack()
if __name__ == '__main__':
root = tk.Tk()
gui = GUI(root)
root.mainloop()
окно должно деиционировать оба окна с фокусом, все еще нацеленным на модальное окно, но модальное окно просто блокирует все попытки деиконифицировать корневое окно
EDIT:
ссылка на отчет об ошибке, в котором другие сомневаются в полноте исправления: https://bugs.python.org/issue26340