我正在尝试继承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获取数据而陷入困境。我在哪里可以找到它?或者只是我的电话错了?
提前致谢。
答案 0 :(得分:2)
我不确定record.value
应该是什么(在您的代码中没有指出record
变量的存在位置或设置的方式或时间。无论如何,对于“从QSqlTableModel获取数据”(我假设你的意思是基类你是子类),使用
whatever = QSqlTableModel.data(self, modelIndex, role)