Seite 1 von 1

[gelöst] QTableView zeigt "Null"- Zeilen

Verfasst: 26. Februar 2008 12:30
von Baz
Hi,

ich hab ein kleines Problem und versteh momentan nicht, an was es liegen könnte. Ich benutzte 2 Tablemodels + Tableviews um Daten einer Datenbank anzuzeigen. Dabei wird das 2. Model mit setFilter() auf die momentan ausgewählte ID des 1. Models eingeschränkt. Das klappt auch alles wunderbar, nur das Tableview des 2. Models zeigt generell zuviele Zeilen an. Die Anzahl der Datensätze im 2. Model ist korrekt, das hab ich mal überprüft, aber mir ist schleierhaft wie das Tableview an die zusätzlichen Zeilen kommt. Die Zeilen sind auch nicht aktiv und nutzbar, wenn man doppelklickt passiert nichts. Hat jemand ne Idee wie ich die Zeilen wegbekomme?

Gruß Baz

Verfasst: 28. Februar 2008 23:16
von ObeliX
setFilter() ?? gibt es doch nur bei QSqlTableModel. ist es das was du verwendest ?
damit hab ich direkt noch nichts gemacht. dein problem (wenn man es mal so nennen darf) hört sich aber so an, als ob der tableview erstmal mit ungefilterten items gefüllt wird. durch den filter werden es dann weniger items die angezeigt werden. tableview hat aber die unangenehme eigenschaft, daß einmal vorhandene zeilen/spalten nicht wieder entfernt werden. lediglich der inhalt wird gelöscht - genauer gesagt werden die zellen nicht wieder gefüllt, wenn weniger items vorhanden sind. die sind dann einfach leer - NULL wie du sagst. (noch unangenehmer ist es, daß setItem() einfach kein item hinzufügt, wenn nicht genügend spalten/zeilen vorhanden sind)
setze mit QStandardItemModel::setRowCount(int rows); einfach die richtige spaltenanzahl. dann sieht die tabelle wieder schön aus.


gruß Obel

Verfasst: 2. März 2008 10:42
von Baz
Hi,

ja ich benutze ein QSqlTableModel - hab das Problem aber mittlerweile einfach mit einem Proxy gelöst ;). Und so kommt man sich mit anderen Views nicht in die Quere, die auch noch auf das Model zugreifen.