0

我已经实现了 2 个 QComboBoxes,其中一个每次都手动插入项目,另一个在列表中插入项目(我正在使用 Python)

但是当我尝试获取 Combobox 的当前值时,它返回None。我按照这个问题中的说明进行操作: 我提到了这个 我提供的 wat 我已经编码。“命令”和“选项”是 QComboBoxes(请原谅我的风格不好)索引中有任何错误吗?

    self.command.insertItem(1,'Convert')
    self.command.insertItem(2,'Compose')
    self.command.insertItem(3,'Animate')


    self.option.insertItems(268,list)

和检索:
self.selected_com=self.command.itemData(self.command.currentIndex()) self.selected_opt=self.option.itemData(self.option.currentIndex())

4

2 回答 2

1

您尚未在组合框中选择当前项目。如果没有当前项目并使用 插入新项目insertItem,则不会自动将其选为当前项目。您可能想调用self.command.setCurrentIndex(1)and self.option.setCurrentIndex(1)

从有关的文档中currentIndex()

默认情况下,对于空组合框或未设置当前项的组合框,此属性的值为 -1。

从有关的文档中itemData()

返回组合框中给定索引中给定角色的数据,如果没有此角色的数据,则返回 QVariant::Invalid。

从 PyQt 的文档中:

只要需要 QVariant,就可以使用任何 Python 对象。None 将被解释为无效的 QVariant。

于 2010-12-19T17:22:06.743 回答
0

您可以使用此代码从组合框获取当前数据:

QString qualification=ui->comboBox->currentText();
QDebug()<<qualification;
于 2015-07-09T12:47:30.937 回答