Python GUI 生成器(页面)设置组合框选项
Python GUI builder (Page) setup combobox options
您好,我尝试使用 ttk 库在 python 中配置组合框,但不幸的是它不允许我添加值
self.qType = ttk.Combobox(top)
self.qType.place(relx=0.69, rely=0.09, relheight=0.04, relwidth=0.22)
self.qType.configure(textvariable=dnsGui_support.combobox)
self.qType.configure(width=137)
self.qType.configure(takefocus="")
dnsGui_support.combobox 在单独的文件中
global combobox
combobox = StringVar("")
combobox.set("AA")
我试过组合框['values'] = ('AA', 'MX')
但这给了我错误 stringvar instance has no attribute setitem
如果我 运行 我的程序没有设置它的值 运行 很好
问题是您在错误的对象上调用它。
您将 StringVar
对象命名为 combobox
,将 Combobox
对象命名为 qtype
,这有点令人困惑。但是 Combobox
对象具有您可以设置的字符串列表。 StringVar
只有一个字符串——在本例中,是 Combobox
.
的当前选择
错误消息可能有点不透明。它说 StringVar instance has no attribute __setitem__
的原因是 x[key] = value
实际上调用了 x.__setitem__(key, value)
,所以如果 x
的类型(StringVar
在你的情况下)没有这样的方法,那就是错误说明了什么。
我不知道你是否可以使用 dict-style 语法看到 Combobox
的值(对它的支持是一个很大的偶然......)。如果它不起作用,您可能需要 configure
它,甚至可能 configure
底层 Listbox
。但是,无论哪种方式,它都是您需要操作的 Combobox
。
self.qType = ttk.Combobox(top)
self.qType.place(relx=0.69, rely=0.09, relheight=0.04, relwidth=0.22)
self.value_list = ['MX', 'AA', 'CNAME']
self.qType.configure(values=self.value_list)
self.qType.configure(textvariable=dnsGui_support.combobox)
self.qType.configure(width=137)
self.qType.configure(takefocus="")
您好,我尝试使用 ttk 库在 python 中配置组合框,但不幸的是它不允许我添加值
self.qType = ttk.Combobox(top)
self.qType.place(relx=0.69, rely=0.09, relheight=0.04, relwidth=0.22)
self.qType.configure(textvariable=dnsGui_support.combobox)
self.qType.configure(width=137)
self.qType.configure(takefocus="")
dnsGui_support.combobox 在单独的文件中
global combobox
combobox = StringVar("")
combobox.set("AA")
我试过组合框['values'] = ('AA', 'MX') 但这给了我错误 stringvar instance has no attribute setitem 如果我 运行 我的程序没有设置它的值 运行 很好
问题是您在错误的对象上调用它。
您将 StringVar
对象命名为 combobox
,将 Combobox
对象命名为 qtype
,这有点令人困惑。但是 Combobox
对象具有您可以设置的字符串列表。 StringVar
只有一个字符串——在本例中,是 Combobox
.
错误消息可能有点不透明。它说 StringVar instance has no attribute __setitem__
的原因是 x[key] = value
实际上调用了 x.__setitem__(key, value)
,所以如果 x
的类型(StringVar
在你的情况下)没有这样的方法,那就是错误说明了什么。
我不知道你是否可以使用 dict-style 语法看到 Combobox
的值(对它的支持是一个很大的偶然......)。如果它不起作用,您可能需要 configure
它,甚至可能 configure
底层 Listbox
。但是,无论哪种方式,它都是您需要操作的 Combobox
。
self.qType = ttk.Combobox(top)
self.qType.place(relx=0.69, rely=0.09, relheight=0.04, relwidth=0.22)
self.value_list = ['MX', 'AA', 'CNAME']
self.qType.configure(values=self.value_list)
self.qType.configure(textvariable=dnsGui_support.combobox)
self.qType.configure(width=137)
self.qType.configure(takefocus="")