QSqlTableModel,数据函数重载
我正在尝试继承 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 个回答
2
我不太清楚那个 record.value
应该是什么(在你的代码里没有说明这个 record
变量是在哪里定义的,或者它是怎么、什么时候被设置的)。不过,关于“从 QSqlTableModel 获取数据”(我假设你是指你正在继承的基类),可以使用
whatever = QSqlTableModel.data(self, modelIndex, role)