2016-04-06 4 views
0

リストがあり、リストの各文字列を別のエントリウィジェットに表示する必要があります。まず長さを変えてから始めて、for I in range(l)コマンドを使って、リスト内の各文字列の次の部分ループを作成します。 a=0は、それぞれ異なる文字列をロードするときに読み込みます。私は問題は、textvariable=self.example_varコマンドを実行するとロードされたすべてのウィジェットが最後のものを除いて空に見えることです。 には正しい文字列が含まれています。別々のエントリウィジェットにリストをロード

基本的に、入力ウィジェットの正しい量がすべてロードされますが、最後の文字列以外の文字列はロードされません。

l=len(selectedetails) 

a=0 
for i in range(l): 
    self.example_var = StringVar() 
    self.example_var.set(selectedetails[a]) 
    self.example_txt = Entry(top1,textvariable=self.example_var) 
    print(selectedetails[a]) 
    self.example_txt.pack() 

    a=a+1 

答えて

1

私はStringVarを使用してないをお勧めします。これは、エントリウィジェットをどのように使用しているかには実質的な目的を果たさず、追跡する必要のある余分なオブジェクトを追加します。

また、ではなく、インデックスの長さと反復を計算することをお勧めします。より多くの神託の方法は、直接、リスト内の項目を反復処理することです:

for entry in entries: 
    print(entry.get()) 
:あなたが値を取得する必要があるとき

entries = [] 
for item in selectiondetails: 
    entry = Entry(top1) 
    entry.insert(0, item) 
    entry.pack() 
    entries.append(entry) 

後で、あなたはentries上を反復することができます

関連する問題