2017-12-13 4 views

答えて

4

これは、使用するルートウィンドウの詳細です。デフォルトでは最初に作成されたルートになります。ただし、プログラムでTk()を複数回使用する必要がある場合もあります(ごくまれに)。その場合、すべての変数を適切なルートに関連付けることが重要です。

は、ここに例を示します

import tkinter as tk 

class menu: 
    def __init__(self): 
     self.game = tk.Tk() 
     self.game.geometry('200x200') 
     self.var = tk.StringVar() 
     #~ self.var = tk.StringVar(master=self.game) # this solves the problem 
     ent = tk.OptionMenu(self.game, self.var, 'one', 'two', 'three', 'four') 
     ent.pack() 
     lbl = tk.Label(self.game, textvariable=self.var) 
     lbl.pack() 
     btn = tk.Button(self.game, text="new window", command=self.playagain) 
     btn.pack() 
     self.game.mainloop() 

    def playagain(self): 
     menu() 

menu() 
+0

私が見て、私は最初のルートがデフォルトで作成されたことを認識していませんでした。 –

+1

@ self.bclすべてのtkinterウィジェットがそうしています。 – Novel

関連する問題