我已经实现了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;
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top