2017-02-18 26 views
0
經由

QSqlRecords是空/空白中QTableView中

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) 

插入的記錄插入QSqlRecord成當QSqlTableModel的在QTableView中示出了帶有驚歎號作爲空白記錄發生問題

。它被插入數據庫關閉並重新打開應用程序導致記錄正常顯示。

Exclamation Point Records rows

回答

0

馬克你產生虛假的主鍵,在PyQt的這是通過做:

record.setGenerated('tableid', False) 

類似的問題發生在那裏,由於缺乏完整的主鍵:

https://forum.qt.io/topic/37023/solved-updating-qsqlrecord-during-qsqltablemodel-beforeupdate-causes-blank-row-in-qtableview/4

相關documentation

:: QSqlTableModel的setRecord

呼叫者要記得所產生的標誌設置爲FALSE,其中該數據庫是指提供的值,諸如自動遞增ID字段。

該問題是由SQLite生成的PK和QT生成的PK之間的差異引起的。