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

问题描述 投票:0回答:3

我已经实现了 2 个 QComboBox,其中一个每次都手动插入项目,另一个则通过列表插入项目(我使用的是 Python)

但是当我尝试获取 Combobox 的当前值时,它返回 None 。 我按照这个问题中的说明进行操作: 我提到了这个 我已经提供了我编码的内容。“命令”和“选项”是 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())

python indexing pyqt qcombobox
3个回答
1
投票

您尚未在组合框中选择当前项目。如果没有当前项目并使用

insertItem
插入新项目,则不会自动将其选为当前项目。您可能想致电
self.command.setCurrentIndex(1)
self.option.setCurrentIndex(1)

来自有关

currentIndex()
的文档:

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

来自有关

itemData()
的文档:

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

来自PyQt的文档:

任何时候都可以使用任何Python对象 预计会出现 QVariant。没有一个会是 解释为无效的 QVariant。


0
投票

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

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

0
投票

我知道这确实很旧,但文档很疯狂。没有数据容器,它说返回是 NONE。那么,应该如何检索存储的数据。事情是这样的……它实际上是有效的——只是文档是错误的。 MS-路障。

© www.soinside.com 2019 - 2024. All rights reserved.