Python中使用ttk库配置Combobox无法添加选项的问题求助
解决ttk Combobox无法添加选项的问题
我刚看完你的代码,问题其实很清晰——你找错了设置选项的对象!你一直在给绑定的StringVar(也就是combobox变量)尝试设置values,但选项列表是属于Combobox组件本身的属性,和StringVar无关。
问题根源
combobox = StringVar("")这个变量只是用来同步Combobox当前选中的文本,它根本没有values这个属性,所以你之前的combobox['values'] = ('AA',...)操作完全是无效的,相当于在给一个不存在的属性赋值,自然不会有任何效果。
修正方案
直接给你的Combobox实例self.qType设置values属性就可以了,下面是修改后的代码:
主文件代码调整:
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) # 重点:给Combobox本身设置选项列表 self.qType['values'] = ('AA', 'A', 'MX', 'CNAME', 'NS') # 替换成你需要的选项 self.qType.configure(width=137) self.qType.configure(takefocus="") # 可选:设置默认选中第一个选项(和你之前的combobox.set("AA")对应) self.qType.current(0)
可选优化:把选项列表放到dnsGui_support文件
如果想让选项列表和变量统一管理,也可以把它放到dnsGui_support.py里:
from tkinter import StringVar # 初始化StringVar时直接用value参数更简洁 combobox = StringVar(value="AA") # 定义选项列表 combobox_options = ('AA', 'A', 'MX', 'CNAME', 'NS')
然后主文件里引用:
self.qType['values'] = dnsGui_support.combobox_options
关键提醒
- Combobox的选项列表由自身的
values属性控制,和绑定的StringVar没有直接关系 StringVar的作用只是同步当前选中的文本内容,用来获取或设置选中值- 一定要确保你是在给Combobox实例设置
values,而不是给StringVar变量设置
内容的提问来源于stack exchange,提问作者Reboot
相关产品推荐
相关产品推荐

