如何在从sqlite数据库获取数据的qtableview上创建qcheckbox

2024-09-30 18:33:05 发布

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

一个qtable视图显示了一个来自sqlite的数据。显然,我正在为所有可用的数据行创建一个复选框。问题是复选框不可选中,单击时显示以下错误。在

if value.toBool():
    AttributeError: 'int' object has no attribute 'toBool'

下面是我得到的代码,但没有给出我需要的结果。我想突出显示其复选框已被单击的行。在

^{pr2}$

Tags: 数据no视图sqliteifobjectvalue错误
1条回答
网友
1楼 · 发布于 2024-09-30 18:33:05

问题是值被转换成保存的类型,在您的例子中,它是一个整数,它接受以下值Qt::CheckedQt::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

要选择或取消选择,我们使用以下方法

^{pr2}$

相关问题 更多 >