2017-01-18 17 views
2

私は奇妙な問題があります。本当に何が起こったのか理解するために、私は自分自身を試してみたが、結果はなかった。私は私のコードを簡素化: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です:

情報については

1

私のOSは、Windows 7であり、私が他のPCでチェック。

+0

使用しているOSは何ですか?私はLinuxで問題なくすべてのウィンドウを最小限にして復元しました(xfceの 'show desktop'ショートカットを使用)。さらに、コードにいくつかのタイプミスがあります。あなたのクラスでも変数 'master'を使いますが、' __init__'メソッドには 'master'という引数はありません。 –

答えて

1

私はWindows上にいるため、OSが問題になる可能性があります。これはすべて正常に動作し、コードを追加することなく、いつでも最大化して最小化できます。私はLinuxにも問題はないと言われてきました。だから私は実際にあなたが操作しているOSを知る必要があります。しかし今のところあなたのOSはあなたを妨害しています。それを修正するいくつかのコードを試してみてください。

+0

'modalwin'を押すと、別のウィンドウが開き、開いているウィンドウがすべて最小化されます。 – bzimor

+0

私の答えに画面GIFを追加 – bzimor

+0

あなたは私のgif、@ JerryPlayz101を見ましたか? – bzimor

関連する問題