On Wednesday 22 September 2010 23:33:10 Heiko Schlittermann wrote: Hej Heiko,
Hm. Irgendwie macht die Library komische Dinge. Ich versuche mal, ein einfaches Beispiel zu bauen und das ganze zu reproduzieren. Aber eigentlich glaube ich immer noch nicht, daß das ins Modell gehört. Das könnte ja auch von anderen Views genutzt werden, und die wollen vielleicht die leere Zeile gar nicht sehen.
Ja, dies sollte nicht in das QSqlTableModel rein, man könnte allerdings ein ProxyModel implementieren, welches eine solche zusätzliche Zeile anbietet und das man zwischen das QSqlTableModel und den QTableView einfügt. Dies ist aber eine ganze Menge zusätzliche Arbeit.
Komisch, daß im QSqlTableView diese o. erwähnte neue Zeile keine Zeilennummer erhält, sondern einen „*“. Also scheint jemand zu wissen, daß das kein realer Datensatz ist.
Das '*' bedeutet, dass die Daten noch nicht in der SQL-Tabelle gespeichert wurden. Abhängig von der EditStrategy geschieht dies erst wenn eine neue Zeile ausgewählt wurde oder man manuell mit submit() das Speichern triggert.
Das Aufrufen von insertRow könnte funktionieren, du müsstest dies allerdings in einem Slot machen, welcher an die rowsInserted/rowsRemoved Signals des Models gebunden sind, so dass es stets geupdated wird.
Und die andere Beobachtung, daß man nicht mehrere leere Zeilen inserten kann. Es zumindest der rowCount scheint sich dann nicht zu ändern.
Ja, der rowCount ändert sich erst, wenn du die Daten wirklich in die Datenbank zurückgespeichert hast.
Ciao, Tobias
lug-dd@mailman.schlittermann.de