QtableWidget unsichtbare Zeile wieder sichtbar machen

Python und das Qt-Toolkit, erstellen von GUIs mittels des Qt-Designers.
Antworten
Benutzeravatar
nieselfriem
User
Beiträge: 81
Registriert: Sonntag 13. Januar 2013, 16:00

Montag 25. Juni 2018, 18:30

Hallo Zusammen

ich habe einen Dialog, bei dem ich durch die Anzahl einer Spalte gesteuert Zeilen einer Tabelle unsichtbar mache.
dies geschieht durch

Code: Alles auswählen

self.produktTb.hideRow(self.selected_prod_row)
self.produktTb.sortByColumn(1, 0)
nun möchte ich diesen weg auch umgekehrt gehen können. Das heißt, wenn ich durch eine Änderung der Spalte Anzahl (Anzahl > 0) diese Zeile wieder sichtbar werden lassen möchte. Dies habe ich nun mit folgendem Code probiert:

Code: Alles auswählen

self.produktTb.showRow(prod_row)
Ich habe die Variablen prod_row und self.selected_prod_row überprüft. beide haben den gleichen Zeilenwert. Was mach ich da falsch?
Wichtig ist evtl auch zu wissen, dass sich die Werte der Spalten auch bei den Operationen auch wirklich ändern. Denn das funktioniert bei den Zeilen, die nicht versteckt werden. Denn das soll immer dann geschehene, wenn die Spalte Anzahl = 0 ist.

VG niesel
__deets__
User
Beiträge: 3712
Registriert: Mittwoch 14. Oktober 2015, 14:29

Montag 25. Juni 2018, 19:20

Mir ist nach deiner Beschreibung nicht so klar, was du da wirklich vor hast. Dazu fehlt da auch Code, um die Klassen der beiteiligten Objekte zu erraten.

Aber grundsätzlich klingt das nach eine falschen Vorgehen, weil man sowas eigentlich nicht durch die Manipulation von Views machen will. Sondern durch ein QAbstractItemModel oder dessen Unterklassen. Dadurch kannst du zb eine Datenstruktur mit allen Einträgen und eine zweite mit verborgenen vorhalten. Und Änderungen an der letzteren führen dazu, das das Model erklärt verändert zu sein & die entsprechenden Einträge dann verändert oder gar nicht mehr anzeigt.
Antworten