Seite 1 von 1

Signale von den Items eines QTreeWidgets abgeben lassen

Verfasst: 11. März 2007 00:41
von Kai_002
Hallo,

ich versuche gerade die QTreeWidgetItems, die sich in meinem QTreeWidget befinden dazu zu bringen Signale abzugeben. Allerdings verfügt die Klasse "QTreeWidgetItems" über keine Signale, weshalb ich mich auf die Klasse "QTreeWidget" stütze. Theoretisch scheint auch alles vorhanden zu sein was ich brauche, aber praktisch funktioniert es einfach nicht. Das ausgesendete Signal kommt einfach nicht bei der Slot-Methode an. Ich habe schon einige Varianten und Signale ausprobiert. Von denen die folgende eine der einfachsten ist:

Code: Alles auswählen

connect(this, SIGNAL (itemClicked (this->currentItem(), 0)), this, SLOT(test()));

connect(this, SIGNAL (itemClicked (this->currentItem(), 1)), this, SLOT(test()));
this bezieht sich auf die QTreeWidget-Klasse.

Was für Möglichkeiten habe ich denn noch, um mein Problem zu lösen?


Danke schonmal,
Kai.

Verfasst: 11. März 2007 02:31
von Dawn

Code: Alles auswählen


connect(this, SIGNAL (itemClicked (QTreeWidgetItem*, int)), this, SLOT(test(QTreeWidgetItem*, int)));

connect(this, SIGNAL (itemClicked (QTreeWidgetItem*, int)), this, SLOT(test(QTreeWidgetItem*,int))); 
den parameter in den slots/signals dürfen keine Werte zugewiesen werden, sondern es müssen die Prototypen angegeben werden.

Verfasst: 11. März 2007 19:20
von Kai_002
o.k., Danke - so funktioniert es jetzt.


Aber was ist wenn die Items nicht erst auf das click-Event reagieren sollen, sondern bereits dann wenn sie mit der Tastatur ausgewählt worden sind? Spontan würde mir so etwas wie ein "isSelected"- oder "hasFocus" - Signal einfallen. Nur leider scheint es sowas nicht zu geben.
Allerdings muss dafür doch ein Signal existieren. Schließlich ändert sich ja jedesmal die Hintergrundfarbe des Items bzw. seiner Zeile sobald es ausgewählt wird.


Tschüß und Danke wider mal,
Kai.

Verfasst: 11. März 2007 20:33
von upsala
Dann arbeite dich mal ab hier

Code: Alles auswählen

QItemSelectionModel * QAbstractItemView::selectionModel () const
durch die Dokumentation. Da findest du alles was du brauchst...