Python QComboBox返回None类型。如何获取当前数据?
我已经实现了2个QComboxes,其中一个每次都手动插入项,另一个每次插入项都带有列表(我使用Python) 但是当我尝试获取Combobox的当前值时,它返回None。 我按照这一问题的规定进行: 我已经提供了我编码的代码。“命令”和“选项”是QComboxes(请原谅我的错误风格)索引中有错误吗Python QComboBox返回None类型。如何获取当前数据?,python,indexing,pyqt,qcombobox,Python,Indexing,Pyqt,Qcombobox,我已经实现了2个QComboxes,其中一个每次都手动插入项,另一个每次插入项都带有列表(我使用Python) 但是当我尝试获取Combobox的当前值时,它返回None。 我按照这一问题的规定进行: 我已经提供了我编码的代码。“命令”和“选项”是QComboxes(请原谅我的错误风格)索引中有错误吗 self.command.insertItem(1,'Convert') self.command.insertItem(2,'Compose') self.command
self.command.insertItem(1,'Convert')
self.command.insertItem(2,'Compose')
self.command.insertItem(3,'Animate')
self.option.insertItems(268,list)
和检索:self.selected\u com=self.command.itemData(self.command.currentIndex())
self.selected_opt=self.option.itemData(self.option.currentIndex())
您尚未在组合框中选择当前项。如果没有当前项目,并使用插入项插入新项目,则不会自动将其选择为当前项目。您可能需要调用self.command.setCurrentIndex(1)
和self.option.setCurrentIndex(1)
从有关currentIndex()
的文档中:
默认情况下,对于空组合框或
没有当前项的组合框
设置时,此属性的值为
-一,
从有关itemData()
的文档中:
返回中给定角色的数据
组合框中的给定索引,或
QVariant::如果没有数据,则无效
对于这个角色
从PyQt的文档中:
任何时候都可以使用任何Python对象
预计会出现一个QQ变体。没有人会这样
解释为无效的QVariant
您可以使用以下代码从comboBox获取当前数据:
QString qualification=ui->comboBox->currentText();
QDebug()<<qualification;
QString限定=ui->comboBox->currentText();
谢谢你,罗斯,我想你已经为我做了一些研究。但当我按u所说的那样运行时,它显示“QComboBox没有名为setCurrentItem()的属性”。有没有其他方法来获取ComboBox的数据?我拼错了setCurrentIndex。没有你是正确的。但我也尝试了setCurrentIndex。无论我设置了什么索引,它都不会返回任何值!!!您还没有为Qt.UserRole角色设置任何数据(即,在insertItem调用中没有第三个参数),因此数据为None。谢谢。正如你所说,我已经修改了它:self.selected\u com=self.command.itemData(self.command.currentIndex(),2)
,它成功了。我仍然不知道wat是用户角色。医管局:)