QSqlTableModel,数据函数重载

时间:2010-02-25 22:53:34

标签: python pyqt

我正在尝试继承QSqlTableModel,以便以我需要的方式显示数据。

class TableViewModel(QSqlTableModel):

    def __init__(self):
        super(TableViewModel, self).__init__()


    def flags(self, modelIndex):
        if not modelIndex.isValid():
            return
        if modelIndex.column() != 1 and modelIndex.column() != 4:
            return Qt.ItemIsEnabled | Qt.ItemIsSelectable
        return Qt.ItemIsEditable | Qt.ItemIsEnabled | Qt.ItemIsSelectable

    def data(self, modelIndex, role=Qt.DisplayRole):
        if not modelIndex.isValid():
            return QVariant()

        if role != Qt.DisplayRole & role != Qt.EditRole:
            return QVariant()

        return record.value(modelIndex.column())

使用此代码我只会获得空单元格。如果没有data()函数,这段代码可以正常工作,TableView中显示的数据应该是正确的。

我只是从QSqlTableModel获取数据而陷入困境。我在哪里可以找到它?或者只是我的电话错了?

提前致谢。

1 个答案:

答案 0 :(得分:2)

我不确定record.value应该是什么(在您的代码中没有指出record变量的存在位置或设置的方式或时间。无论如何,对于“从QSqlTableModel获取数据”(我假设你的意思是基类你是子类),使用

whatever = QSqlTableModel.data(self, modelIndex, role)