通过
将QSqlRecord插入QSqlTableModel时出现问题record = self.tablemodel.record()
record.setValue('originfile_path', filepath)
record.setValue('originfile_hash', filehash)
record.setValue('image', img_pkl)
record.setValue('area', area)
self.tablemodel.insertRecord(-1, record)
插入的记录在QTableView中显示为带有感叹号的空白记录。它被插入数据库关闭并重新打开应用程序导致记录正常显示。
答案 0 :(得分:0)
将生成的主键标记为False,在pyqt中通过以下方式完成:
record.setGenerated('tableid', False)
由于缺少主键,在那里发生了类似的问题:
相关的documentation:
<强> :: QSqlTableModel的setRecord 强>
对于数据库要提供值的字段,调用者应该记住将生成的标志设置为FALSE,例如自动递增的ID。
问题是由SQLite生成的PK与QT生成的PK之间的差异引起的。
答案 1 :(得分:0)
尝试更改编辑策略:
tablemodel.setEditStrategy(QSqlTableModel::OnManualSubmit);