我在QAbstractTableModel中使用自己的表模型,其中第一个col带有checkbox(checkable cause flagsQt.ItemIsUserCheckable | Qt.ItemIsSelectable | Qt.ItemIsEnabled
)。我在尝试使用复选框时遇到问题,因为它们在显示的表中不可检查(不能在them中进行检查或取消选中)。在
我做错什么了?我在自己的表模型类中使用以下方法:
def data(self, index, role):
row = index.row()
col = index.column()
if role == Qt.DisplayRole:
return '{0}'.format(self.tableData[row][col])
if role == Qt.CheckStateRole:
if col == 0:
return Qt.Unchecked
else:
return None
def setData(self, index, value, role):
if not index.isValid():
return False
if (role == Qt.CheckStateRole):
if (index.data(Qt.CheckStateRole) == Qt.Checked):
return True
else:
return False
else:
return False
你必须存储它的状态,我们需要有一些永久的东西作为引用,为此我们使用}的状态。在
QPersistentModelIndex
,在本例中是一个字典,其中键是QPersistentModelIndex
,值是{相关问题 更多 >
编程相关推荐