2017-02-18 12 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) 

介しQSqlTableModelにQSqlRecordを挿入するときに発生QTableViewに感嘆符と同様に空白のレコードを示しています。それはデータベースに挿入されます。アプリケーションを閉じると再オープンすると、レコードが正常に表示されます。

Exclamation Point Records rows

答えて

0

マークし、これを介して行われるPyQtはfalseに生成された主キー、:

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

は、発信者がデータベースは、このような自動的にインクリメントIDとして、値を供給するように意図されるフィールドにFALSEに生成されたフラグを設定することを覚えておいてください。

この問題は、SQLiteで生成されたPKとQTで生成されたPKの間に相違があるために発生します。