我已经实现了 2 个 QComboBox,其中一个每次都手动插入项目,另一个则通过列表插入项目(我使用的是 Python)
但是当我尝试获取 Combobox 的当前值时,它返回 None 。 我按照这个问题中的说明进行操作: 我提到了这个 我已经提供了我编码的内容。“命令”和“选项”是 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())
您尚未在组合框中选择当前项目。如果没有当前项目并使用
insertItem
插入新项目,则不会自动将其选为当前项目。您可能想致电 self.command.setCurrentIndex(1)
和 self.option.setCurrentIndex(1)
。
来自有关
currentIndex()
的文档:
默认情况下,对于空组合框或 没有当前项目的组合框 设置后,该属性的值为 -1.
来自有关
itemData()
的文档:
返回给定角色的数据 组合框中给定的索引,或 QVariant::如果没有数据则无效 对于这个角色。
来自PyQt的文档:
任何时候都可以使用任何Python对象 预计会出现 QVariant。没有一个会是 解释为无效的 QVariant。
您可以使用此代码从组合框中获取当前数据:
QString qualification=ui->comboBox->currentText();
QDebug()<<qualification;
我知道这确实很旧,但文档很疯狂。没有数据容器,它说返回是 NONE。那么,应该如何检索存储的数据。事情是这样的……它实际上是有效的——只是文档是错误的。 MS-路障。