我正在尝试继承 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 获取数据。我在哪里可以找到它?还是只是我的电话错误?
提前致谢。
最佳答案
我不确定 record.value
应该是什么(您的代码中没有指示 record
变量的位置或设置方式或时间) 。无论如何,对于“从 QSqlTableModel 获取数据”(我假设您指的是您要子类化的基类),请使用
whatever = QSqlTableModel.data(self, modelIndex, role)
关于python - QSqlTableModel,数据函数重载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2338276/