QComboBox返回None Type。如何获取当前数据?

时间:2010-12-19 16:49:40

标签: python indexing pyqt qcombobox

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

但是当我尝试获取Combobox的当前值时,它返回。 我继续按照这个问题的具体说明: I referred this 我提供了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())

2 个答案:

答案 0 :(得分:1)

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

有关currentIndex()的文档:

  

默认情况下,对于空组合框或   一个组合框,其中没有当前项目   设置后,此属性的值为   -1

有关itemData()的文档:

  

返回给定角色的数据   组合框中的给定索引,或   QVariant ::如果没有数据则无效   这个角色。

来自PyQt的文档:

  

任何时候都可以使用任何Python对象   预期QVariant。没有   被解释为无效的QVariant。

答案 1 :(得分:0)

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

QString qualification=ui->comboBox->currentText();
QDebug()<<qualification;