Seite 1 von 1

[gelöst] QTreeWidgetItem Checkbox -> Checked-Signal?

Verfasst: 12. November 2009 10:49
von suamikim
Hallo zusammen,

ich hab eine QTreeWidget, mit vielen QTreeWidgetItems, die vor dem Text eine kleine Checkbox beinhalten (mittels setFlags & setCheckState).

Nun bräuchte ich für jedes Item ein Signal, welches mir sagt, dass die Checkbox ihren Zustand geändert hat (also von Checked zu Unchecked oder anders herum), weil ich dann ein paar Berechnungen neu durchführen muss.

Leider kann ich weder unter den QTreeItem-Signals, noch unter jenen von QTreeWidgetItem (hier finde ich in der Doku gar keine Signals...) etwas passendes finden.

Natürlich könnte ich zB. das itemClicked-Signal von QTreeWidget benutzen, allerdings würden die Berechnungen so nur unnötig oft durchgeführt werden, weil das Clicked-Signal ja auch kommt, wenn zB. nur auf den Text neben der Checkbox gedrückt wurde (und sich der Checked-Zustand also nicht verändert hat)...

Wie geht man sowas nun an?

danke, mfg

Verfasst: 12. November 2009 12:22
von upsala
Das Model von QTreeWidget nehmen und das dataChanged()-Signal auswerten.

Oder ein eigenes Model schreiben.

Verfasst: 12. November 2009 13:27
von otternase
dataChanged() wäre ein Signal, welches nicht QTreeWidget, sondern das entsprechende QTreeWidgetItem sendet, da aus QAbstractItemModel kommend

für QTreeWidget müsste das Signal void itemChanged ( QTreeWidgetItem * item, int column ) es tun, oder?

Verfasst: 24. November 2009 14:22
von suamikim
Sorry für die späte Rückmeldung. Bin erst jetzt dazugekommen das zu testen.

itemChanged vom tree reicht vollkommen!

Danke, mfg

mik