2016-03-29 70 views
0

私は、ボタンが押されたときに画面をクリアする関数をpythonで作成しようとしています。私はgrid_removeを認識していますが、それをどのように使用するかはわかりません。特定の関数、つまり「hi」と「clear」の両方からすべてをクリアする方法もありますか?あなただけの親はウィジェットを保持しているものは何でもしてウィジェットの全てを示す/非表示に切り替えたいと思っている場合は、winfo_children方法で構築された使用することができtkinterで特定のウィジェットを消去する

from tkinter import * 

class Movies: 
    def __init__(self, master): 
     hi = Label(text = "Hello") 
     hi.grid(row = 0, column = 0) 

     clear = Button(text = "Click", command=self.clear) 
     clear.grid(row = 1, column = 0) 
    def clear(self): 
     hi.grid_remove() 




root = Tk() 
gui = Movies(root) 
root.geometry("100x200+0+0") 
root.mainloop() 
+0

「クリア」とは具体的にはどういう意味ですか?ウィジェットを破棄して別のウィジェットに置き換えたいのですか、ウィジェットを保持したいが表示されているテキストを削除する(つまり、ラベルを空の文字列に設定する)のですか? –

答えて

0

。小さな例:

from tkinter import * 

class Movies: 

    def __init__(self, master): 

     self.master = master 
     self.state = 1 

     for i in range(5): 
      Label(self.master, text='Label %d' % i).grid(row=0, column=i) 
     self.magic_btn = Button(self.master, text='Make the Magic!', 
      command=self.magic) 
     self.magic_btn.grid(columnspan=5) 

    def magic(self): 

     self.state = not self.state 
     for widget in self.master.winfo_children(): #iterate over all child widgets in the parent 
      #Comment out to clear the button too, or leave to toggle widget states 
      if widget != self.magic_btn: #or some other widget you want to stay shown 
       if self.state: 
        widget.grid() 
       else: 
        widget.grid_remove() 
       print(self.state) 


root = Tk() 
gui = Movies(root) 
root.mainloop() 
関連する問題