2011-08-02 6 views
0

オプションウィンドウをポップアップするボタンがあります。新しいウィンドウでウィジェットを作成しようとすると、親ウィンドウにのみ表示されます。 chkMonは、メインウィンドウとオプションに表示されます作成されたウィンドウのウィジェットが代わりに親ウィンドウに表示される

from Tkinter import * 
class MainWindow: 
    def __init__(self, master): 
     """builds main window.""" 
     windowAttr = {"width":450, "height":150} 
     window = Frame(master, windowAttr).grid() 
     btnAttr = {"text":"Options", "width":12, "height":1} 
     self.btnOptions = Button(window, btnAttr, command=btnOptionsClick).place(x=360, y=5) 

class Options: 
    def __init__(self, optMaster): 
     """Builds and displays the options window""" 
     optAttr = {"width":300, "height":200} 
     optWin = Frame(optMaster, optAttr).grid() 
     self.chkMon = Checkbutton(optWin, text="Mon").place(x=50, y=50) 

def btnOptionsClick(): 
    opt = Tk(className='Options') 
    optionsApp = Options(opt) 
    opt.mainloop() 

root = Tk(className='Main Window') 
app = MainWindow(root) 
root.mainloop() 

は常に空で、私はchkMonはオプションではなくメインウィンドウに表示する:

はここに関連するコードです。

私は非常にPythonに新しいので、知識のある人には感謝しています。編集

def btnOptionsClick(): 
    opt = Toplevel(root, takefocus=True) 
    chkMon = Checkbutton(opt, text="Mon").place(x=50, y=50) 
+0

実用的な解決策があるので、依然として回答を探しているのですか、質問を閉じる必要がありますか? –

答えて

0

ことがあなたの元btnOptionsClick()関数の最初の行を作ってみましょう...

: 私は、に)オプションクラスを削除し、DEF btnOptionsClickを(変更ワーキング解決策を見つけました
opt = Toplevel() 

残りの部分はそのまま残してください。

関連する問題