Qcombobox返回无类型。如何获取当前数据?
题
我已经实现了2个Qcomboboxes,其中一个每次都手动插入项目,另一个将项目插入列表(我正在使用Python)
但是,当我尝试获得Combobox的当前价值时,它会返回 没有任何 。我按照这个问题指定进行:我提到了这个我已经提供了已编码的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())
解决方案
您尚未在组合框中选择当前项目。如果没有当前物品并将新项目插入 insertItem
, ,不是自动选择当前的选择。你可能想打电话 self.command.setCurrentIndex(1)
和 self.option.setCurrentIndex(1)
.
从关于有关的文档 currentIndex()
:
默认情况下,对于未设置当前项目的空组合框或组合框,该属性的值为-1。
从关于有关的文档 itemData()
:
如果没有该角色的数据,则返回Combobox中给定索引中给定角色的数据,或返回qvariant ::无效的数据。
从pyqt的文档:
每当预期QVariant时,都可以使用任何Python对象。没有人会被解释为无效的Qvariant。
其他提示
您可以使用此代码从ComboBox获取当前数据:
QString qualification=ui->comboBox->currentText();
QDebug()<<qualification;
不隶属于 StackOverflow