具有OnManualSubmit的QSqlRelationalTableModel

时间:2018-07-11 11:28:03

标签: python pyqt pyqt5 qsqlquerymodel qsqlrelationaltablemodel

我这样设置视图的模型:

model = QSqlRelationalTableModel()
model.setEditStrategy(QSqlTableModel.OnManualSubmit)
model.setTable("VoucherPos")
model.setFilter("VoucherKey='" + str(parent_id) + "'")

model.setRelation(10, QSqlRelation("IO", "IOKey", "IOText"))

self.tblSubTable.setItemDelegate(QSqlRelationalDelegate())
model.select()
self.tblSubTable.setModel(model)

但是在表格视图中编辑第10列后,将显示id值(IOKey)。编辑之前,显示的是与权利相关的值(“ IOText”)。

如果我删除带有“ setEditStrategy”的行,则一切正常,但我想使用带有“ OnManualSubmit”的EditStrategy。

谢谢!

1 个答案:

答案 0 :(得分:0)

我解决了这个问题。在我的原始代码中,我使用了一个子类QSqlRelationalTableModel,在其中为某些列(以及第10列)设置了对齐方式。当我使用原始的QSqlRelationalTableModel类时,一切正常。