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。
答
您可以使用此代码从组合框获取当前数据:
QString qualification=ui->comboBox->currentText();
QDebug()<<qualification;
感谢ü羁绊,我觉得u've做了一些reasearch我。但是,当我运行,因为你说,它显示“QComboBox没有名为setCurrentItem()”的属性。有没有其他的方式来获取ComboBox的数据? – vettipayyan 2010-12-19 17:42:38
我拼错了setCurrentIndex。 – 2010-12-19 17:53:18
没错。但我也试过setCurrentIndex。无论我设置索引,它都会返回None! – vettipayyan 2010-12-19 18:01:31