所以我有以下列表:
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)
然而,正在发生的事情是,项目中的所有值都合并为一个选项,即:
{name1}{name2}{name3}
而不是:
{name1}
{name2}
{name3}
不确定此处存在什么问题或如何更改此问题。
还有一种方法可以使用列表变量填充选项的菜单,它不会显示大括号{}
修改
好的,我刚刚做了以下事情:
z = []
z.extend(a1)
z.extend(a2)
z.extend(a3)
z.extend(a4)
z.extend(a5)
items = z
现在似乎正在运作。谢谢!
答案 0 :(得分:0)
问题是您正在为选项菜单提供列表清单。 OptionMenus不是分层的。每个参数都应该是一个字符串,而不是一个列表。当您给它一个列表时,OptionMenu不知道您希望如何格式化列表,因此您可以获得自己的内部格式。
您需要将所有列表合并到一个列表中,然后再将其传递给OptionMenu。