私は奇妙な問題があります。本当に何が起こったのか理解するために、私は自分自身を試してみたが、結果はなかった。私は私のコードを簡素化: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')
問題は、上記の両方のウィンドウが最大化されていない、私は(deiconify)を最大化しようとすると、モーダルウィンドウを開いた後、私はその後、(アイコン化)すべてのウィンドウ(Ctrlキー+ Dを押す)を最小化、ですとにかく誰かがこれを説明できますか?それは私の誤りですか、それとも他の方法で使うべきですか?
これは、画面GIFです:
情報については:私のOSは、Windows 7であり、私が他のPCでチェック。
使用しているOSは何ですか?私はLinuxで問題なくすべてのウィンドウを最小限にして復元しました(xfceの 'show desktop'ショートカットを使用)。さらに、コードにいくつかのタイプミスがあります。あなたのクラスでも変数 'master'を使いますが、' __init__'メソッドには 'master'という引数はありません。 –