2016-11-24 8 views
0

だから私は、次のリストがあります:Tkinterの - リストの変数とオプションメニューのオプションを移入

containers = [] 
lids = [] 
wicks = [] 
labels = [] 
misc = [] 
inventory = [] 

class Item(object): 
    def __init__(self, desc, name, amount): 
     self.desc = desc 
     self.name = name 
     self.amount = amount 

a1 = [x.getName() for x in containers] 
a2 = [x.getName() for x in lids] 
a3 = [x.getName() for x in wicks] 
a4 = [x.getName() for x in labels] 
a5 = [x.getName() for x in misc] 
items = [a1, a2, a3, a4, a5] 

は私がやろうとしていることは、リストからすべての値を持つtype_selectorのオプションを読み込むですitems

ここで私は私がこれまでにオンライン見つけたものに基づいたものです:

add_amount_selector = StringVar() 
type_selector = OptionMenu(mainframe, add_amount_selector, *items) 

しかし何が起こっているかは、項目の値がすべて一つにまとめてマージしているということです1つのオプション、すなわち:

{name1}{name2}{name3} 

の代わり:

{name1} 
{name2} 
{name3} 

ない問題はここにあるものか、これを変更する方法を確認してください。

また、それは、中括弧{}

編集を示さない場合、リストの変数とオプションのメニューを移入する方法はあり

[OK]を私は次のようでした:

z = [] 
z.extend(a1) 
z.extend(a2) 
z.extend(a3) 
z.extend(a4) 
z.extend(a5) 

items = z 

となっており、現在動作しているようです。ありがとうございました!

答えて

0

問題は、オプションメニューにリストのリストを与えていることです。 OptionMenusは階層型ではありません。各引数は文字列であり、リストではないと考えられます。リストを与えると、OptionMenuはリストの書式をどのようにしたいのか分からないため、独自の内部書式を取得します。

OptionMenuに渡す前に、すべてのリストを1つのリストにまとめる必要があります。

+0

作業コードで編集済み – cstmxyz

関連する問題