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

QComboBox调用addItem时将元组存为变量触发TypeError如何解决

问题解决与实现方案

报错原因

QComboBox.addItem()的第二个参数为选项绑定的自定义用户数据,你原代码中给colors元组额外套了一层[],传入的实际结构是[("Black", "Blue", ...)],Qt解析用户数据时类型不匹配才抛出错误。直接写元组时你没有嵌套列表,所以可以正常运行。

正确写法(支持元组存为变量调用)

这个需求完全可以实现,只需要去掉colors外层多余的列表即可:

first_dropdown = 'Colored Pencil'
# 元组存为变量完全可以正常调用
colors = ("Black", "Blue", "Brown", "Green", "Grey", "Yellow", "White")

self.example = QComboBox()
# 直接传入colors作为用户数据,不需要套列表
self.example.addItem(first_dropdown, colors)

下拉框联动实现

绑定第一个下拉框的选中信号,选中时取出关联的选项列表更新后续下拉框即可:

# 绑定选中触发信号
self.example.currentIndexChanged.connect(self.update_related_dropdown)

# 槽函数实现后续下拉框更新
def update_related_dropdown(self, current_index):
    # 取出当前选项绑定的选项元组
    related_options = self.example.itemData(current_index)
    # 更新后续下拉框内容
    self.second_dropdown.clear()
    self.second_dropdown.addItems(related_options)

内容的提问来源于stack exchange,提问作者TheCrazySwede

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 19:06:00