Frage

In meiner Form habe ich eine QListWidget, die überprüfbar QListWidgetItems enthält. Ich bin auf der Suche nach einer Möglichkeit, das Ereignis eines QListWidgetItem Wesen aktiviert / deaktiviert zu erfassen. Ich sehe kein solches Signal für das bestehende, aber vielleicht bin ich falsch. Was ich zur Zeit tun, ist das QListWidget::itemClicked() Signal verwendet und die checkState der QListWidgetItem Kontrolle, aber das ist nicht das, was ich will, weil dieses Ereignis das Element jederzeit geschieht geklickt wird, ging nicht nur das Häkchen umgeschaltet wird. Kann jemand etwas Unterstützung geben? Dank!

War es hilfreich?

Lösung

Offenbar kein solches Signal zur Verfügung gestellt, ist Ihre beste Wette QListWidget::itemChanged(QListWidgetItem* item) und scannen die resultierende item->checkState() . Dies sollte eine leichte Verbesserung gegenüber der Verwendung itemClicked sein

Andere Tipps

Eine zusätzliche Option ist für Ihre eigene QAbstractListModel mit einem QListView zu verwenden. Zunächst tut dies etwas mehr Code hinzufügen, wie Sie Ihren eigenen Management-Code hinzufügen müssen. Aber Sie tun einen geringeren Zugang zu bekommen. Im Grunde genommen, weil die QListView wird Ihr Modell fragen, was zu tun ist. Es wird auch Eingang zurück zu Ihrem Listmodel Relais, wo man in sie einhaken kann.

Alternativ können Sie QStandardItemModel Unterklasse und bestimmte Änderungen fangen in Bezug auf das Kontrollkästchen zu ändern.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top