QComboBox返回None类型,如何获取当前数据?
我实现了两个下拉框(QComboBox),一个是每次手动添加选项,另一个是通过列表添加选项(我用的是Python)。
但是当我尝试获取下拉框当前的值时,它返回的是None。我按照这个问题中的说明进行了操作:我参考了这个。我提供了我写的代码。“command”和“option”是两个下拉框(抱歉代码风格不好)。请问索引方面有没有错误?
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())
2 个回答
0
你可以使用这段代码来获取组合框(comboBox)中的当前数据:
QString qualification=ui->comboBox->currentText();
QDebug()<<qualification;
1
你还没有在下拉框中选择当前的项目。如果没有选择任何项目,然后用 insertItem
插入一个新项目,这个新项目不会自动被选为当前项目。你可能想要调用 self.command.setCurrentIndex(1)
和 self.option.setCurrentIndex(1)
来设置当前选中的项目。
关于 currentIndex()
的文档说明:
默认情况下,如果下拉框是空的,或者没有设置当前项目,这个属性的值是 -1。
关于 itemData()
的文档说明:
返回下拉框中给定索引的特定角色的数据,如果没有这个角色的数据,则返回 QVariant::Invalid。
关于 PyQt 的文档说明:
任何 Python 对象都可以在需要 QVariant 的地方使用。None 会被解释为无效的 QVariant。