2024-09-30 18:33:05 发布
网友
一个qtable视图显示了一个来自sqlite的数据。显然,我正在为所有可用的数据行创建一个复选框。问题是复选框不可选中,单击时显示以下错误。在
if value.toBool(): AttributeError: 'int' object has no attribute 'toBool'
下面是我得到的代码,但没有给出我需要的结果。我想突出显示其复选框已被单击的行。在
问题是值被转换成保存的类型,在您的例子中,它是一个整数,它接受以下值Qt::Checked、Qt::PartiallyChecked和{},解决方法是将它们与这些值进行比较。在
Qt::Checked
Qt::PartiallyChecked
def setData(self, index, value, role=QtCore.Qt.DisplayRole): row = index.row() if index.column() == self.column and role == QtCore.Qt.CheckStateRole: if value == QtCore.Qt.Checked: self.checkboxes[row] = True else: self.checkboxes[row] = False self.dataChanged.emit(index, index, [QtCore.Qt.CheckStateRole]) return True else: return False
要选择或取消选择,我们使用以下方法
问题是值被转换成保存的类型,在您的例子中,它是一个整数,它接受以下值},解决方法是将它们与这些值进行比较。在
Qt::Checked
、Qt::PartiallyChecked
和{要选择或取消选择,我们使用以下方法
^{pr2}$相关问题 更多 >
编程相关推荐