Ich kann bestätigen, dass der Fehler genau so existiert, wie Sie ihn melden, in Qt 4.5.1, UND dass die Dokumentation, z. hier , gibt immer noch ein falsches Beispiel (dh eines, das den Aufruf removeColumn
enthält).
Als Umgehung habe ich versucht, einen Slot zu schreiben, der mit dem beforeUpdate
-Signal verbunden ist, mit der Idee, zu überprüfen, was mit dem QSqlRecord, das gerade aktualisiert wird, in der Datenbank zu funktionieren und es möglicherweise zu beheben, aber ich kann Das funktioniert nicht - alle Aufrufe von Methoden dieses Datensatzparameters stürzen meine Spielzeug-App mit einem BusError ab.
Also habe ich diese Idee aufgegeben und bin zu dem zweifellos richtigen Weg übergegangen (Sichtbarkeit sollte von der Ansicht bestimmt werden, nicht vom Modell, richtig? -): verliere die removeColumn
und in Statt dessen rufen Sie stattdessen tableView->setColumnHidden(0, true)
auf. Auf diese Weise sind die IDs versteckt und alles funktioniert.
Also ich denke, wir können bestätigen, dass es einen Dokumentationsfehler gibt und ein Problem damit im Qt-Tracker öffnen, so dass es in der nächsten Runde von Dokumenten behoben werden kann, oder?
Es scheint, dass die Ursache dafür in Linie war
%Vor%Nach dem Auskommen funktioniert alles perfekt. Also muss ich einen anderen Weg finden, IDs nicht in der Tabelle zu zeigen ;-)
BEARBEITEN Ich habe "es scheint" gesagt, weil Johan Thelin im Beispiel von "Foundations of Qt development" auch die erste Spalte entfernt hat. Es wäre also schön, wenn jemand anderes dies auch versucht und Ergebnisse meldet.