PyQt:可检查项目的QComboBox:未显示复选框

2024-09-25 14:25:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试用可检查的项生成QComboBox。我创建了一个自定义模型,QComboBox对象使用它(通过setModel()方法)。在

我试着用这个问题中给出的解决方案:https://stackoverflow.com/a/8423904

这是我的定制型号:

class FilterModel(QStandardItemModel):

    def __init__(self, filter_list, parent=None):
        super(FilterModel, self).__init__(parent)

        for index, filter in enumerate(filter_list):
            item = QStandardItem(filter)
            item.setFlags(Qt.ItemIsUserCheckable | Qt.ItemIsEnabled)
            item.setData(Qt.Unchecked, Qt.CheckStateRole)

            self.setItem(index, 0, item)

当我实例化我的模型时,我在构造函数中以列表的形式传递这些项。在

但是,我的项目不能选择,也不能选中(复选框甚至没有显示)。在


Tags: 对象方法模型selfindexinit解决方案filter
1条回答
网友
1楼 · 发布于 2024-09-25 14:25:23

我不知道为什么复选框没有显示,但是要使项目可选择,还需要包括Qt.ItemIsSelectable标志。在

无论如何,为什么不试试QStandardItem.setCheckable方法呢?像这样:

class FilterModel(QStandardItemModel):

    def __init__(self, filter_list, parent=None):
        super(FilterModel, self).__init__(parent)

        for index, filter in enumerate(filter_list):
            item = QStandardItem(filter)
            item.setSelectable(True)
            item.setCheckable(True)
            item.setCheckState(Qt.Unchecked)
            self.setItem(index, 0, item)

相关问题 更多 >