如何从pyqt中的模型设置组合框数据

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

通常,我将组合框数据设置如下:cbo.addItem("xyz",QVariant(1))-xyz是cbo中显示的值,而1是其数据]

我正在从pyqt模型设置可检查的cbo值,如下所示:

model = QtGui.QStandardItemModel(len(cases_array), 1)
for index, case in enumerate(cases_array): 
    item = QtGui.QStandardItem(case[1])
    item.setFlags(QtCore.Qt.ItemIsUserCheckable | QtCore.Qt.ItemIsEnabled)
    item.setData(QtCore.Qt.Unchecked, QtCore.Qt.CheckStateRole)
    model.setItem(index, 0, item)
cbo.setModel(model)

效果很好。但是当我执行cbo.itemData(0).toPyObject()时,我没有任何价值。如何设置cbo数据值。

谢谢

python pyqt pyqt4
1个回答
0
投票

文档指出:

void QComboBox :: addItem(const QString&text,const QVariant&userData = QVariant())

将具有给定文本的项目添加到组合框中,并包含指定的userData(存储在Qt::UserRole中)。该项目被附加到现有项目列表。

userData与Qt::UserRole角色相关联,因此您必须使用该角色(或更大的角色)。

考虑到上述,我创建了以下示例:

Qt::UserRole
© www.soinside.com 2019 - 2024. All rights reserved.