复选框在Combobox内部看不到



我需要用户可以检查我的combobox项目,以便他们可以选择多个项目。我已经在Stackoverflow上看到了一些解决方案。我将其应用于我的代码。它做了一些事情,但是复选框还不可见,我还无法选择任何项目。

我的代码如下

from PySide.QtGui import *
from PySide.QtCore import * 
udims = [here goes some items]
cmb = QComboBox()
model = QStandardItemModel(len(udims), 1)
for i, udim in enumerate(udims):
    item = QStandardItem(udim)
    item.setFlags(Qt.ItemIsUserCheckable | Qt.ItemIsEnabled)
    item.setData(Qt.Checked | Qt.CheckStateRole)
    model.setItem(i, 0, item)
cmb.setModel(model)

我能够通过为复选框创建一个qitemdelegate的子类,然后将其插入combobox的项目委托。

from PySide.QtCore import *
from PySide.QtGui import *
class CheckBoxDelegate(QItemDelegate):
    def __init__(self, parent=None):
        super(CheckBoxDelegate, self).__init__(parent)
    def createEditor(parent, op, idx):
        self.editor = QCheckBox(parent)

udims = ['1001', '1002', '1003', '1004']
cmb = QComboBox()
delegate = CheckBoxDelegate()
cmb.setItemDelegate(delegate)
model = QStandardItemModel(len(udims), 1)
for i, udim in enumerate(udims):
    item = QStandardItem(udim)
    item.setFlags(Qt.ItemIsUserCheckable | Qt.ItemIsEnabled)
    item.setData(Qt.Checked | Qt.CheckStateRole)
    model.setItem(i, 0, item)
cmb.setModel(model)

相关内容

  • 没有找到相关文章

最新更新