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

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

问题描述:

我实现了2个QComboBoxes与手动插入每次和一条具有插入列表中的项目(我使用Python)QComboBox返回None类型。如何获取当前数据?

但是,当我试图得到ComboBox的当前值,返回有一个项目。 我按照这个问题的指定进行: I referred this 我已经提供了wat我编码。“command”和“option”是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的的文档:

每当 一个的QVariant预期可以使用任何Python对象。没有人会将 解释为无效的QVariant。

+0

感谢ü羁绊,我觉得u've做了一些reasearch我。但是,当我运行,因为你说,它显示“QComboBox没有名为setCurrentItem()”的属性。有没有其他的方式来获取ComboBox的数据? – vettipayyan 2010-12-19 17:42:38

+0

我拼错了setCurrentIndex。 – 2010-12-19 17:53:18

+0

没错。但我也试过setCurrentIndex。无论我设置索引,它都会返回None! – vettipayyan 2010-12-19 18:01:31

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

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