我有一個奇怪的問題。爲了理解真正發生的事情,我嘗試了自己並使用Google搜索,但沒有結果。我簡化了我的代碼:Tkinter模式窗口不會讓主窗口最大化
#mainw.py
import tkinter as tk
import modalw
class Main(tk. Frame) :
def__init__(self, master) :
tk.Frame.__init__(self, master)
self.master = master
self.btn = tk.Button(master, text='modalwin', command=self.openwin)
self.btn.pack()
def openwin(self):
mod = modalw.Modal()
#modalw.py
import tkinter as tk
class Modal(tk. Frame) :
def__init__(self, master) :
tk.Frame.__init__(self, master)
self.top = tk.TopLevel()
#I'm not sure these 3 lines of code are true
self.top.transient(master)
self.top.grab_set()
master.wait_window(self)
self.lbl = tk.Label(self.top, text='Hello')
self.lbl.pack()
self.btn2 = tk.Button(master, text='change text', command=self.change)
self.btn2.pack()
def change(self):
self.lbl.config(text='Good bye')
問題是,開模態窗口後,我最小化(圖標化)所有窗口(按Ctrl + d),然後當我嘗試最大化(deiconify),這兩個窗口上面沒有最大化無論如何。有人可以解釋這一點嗎?這是我的錯誤還是應該用其他方式?
這是一個屏幕GIF:
對於信息:我的操作系統是Windows 7和我在其他電腦進行檢查。
你在使用什麼操作系統?我最小化和恢復所有窗口沒有麻煩在Linux中(使用XFCE'顯示桌面'快捷方式)。另外,你的代碼中有一些拼寫錯誤。你也可以在你的類中使用變量'master',但是'__init__'方法沒有'master'參數。 –