我正在试着做一个带有可检查项目的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)
当我实例化我的模型时,我在构造函数中以列表的形式传递这些项。
但是,我的项目不能选择,也不能勾选(复选框甚至不会显示)。
发布于 2016-05-19 06:09:27
我不知道为什么复选框不显示,但为了使项目可选,您还需要包括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)
https://stackoverflow.com/questions/37299333
复制相似问题