2017-04-24 5 views
0

私は1つのウィンドウに複数のラベルを作成しています。クラス内で1つのメソッドを使用して作成し、名前、テキストなどを関数に渡すだけです。テストでは、関数をウィジェットの名前として与える変数を使用する方法を見つけることができません。これを行うことは可能ですか、複数の方法が必要でしょうか?ウィジェット名の名前を渡すことができない場合は、1つのメソッドを使用して複数のウィジェットを作成する別の方法がありますか?1つの方法で複数のウィジェットを作成することはできますか?

class framemkr(object): 

    def __init__(self, name): 
     self.name = name 

    def lblmkr(self, name, words, frame): 
     self.name= Label(frame, text=words) 
     self.name.grid() 

答えて

1

私はあなたがtkinterを使用していると仮定しています。

あなたが提案したように、ラベルメーカーの変数名に「名前」を使用することはできませんが、あとでラベルとやりとりしたくない場合は、どちらにもする必要はありません。ラベルと相互作用して、あなたが辞書でそれを救うことができる変数を保存したい場合は、そうでない場合

class framemkr(object): 
    def __init__(self, name): 
     self.name = name 

    def add_label(self, text, row, column, frame): 
     """ Adds a label to the GUI when called. 
     """ 
     Label(frame, text=text).grid(row=row, column=column) 

:あなたはこのようにそれを単に行うことができます

class framemkr(object): 
    def __init__(self, name): 
     self.name = name 
     self.labels = {} 

    def add_label(self, name, text, row, column, frame): 
     """ Adds a label to the GUI when called. 
     """ 
     label = Label(frame, text=text) 
     label.grid(row=row, column=column) 
     self.labels[name] = label 

あなたは、このようにラベルをアクセスすることができました変数を後で辞書から削除する。

+0

私はウィジェットに名前を付ける必要があるので、後でそれらにアクセスする必要があります。私は前に辞書のことをやったが、私は他のオプションを探していた。それが唯一の方法ならば、そのルートに行くとうまくいく。ありがとう – sidnical

+0

とはいそのtkinter – sidnical

関連する問題