You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 06:54:17