QTreeItem und SIGNAL()

Alles rund um die Programmierung mit Qt
Antworten
D_ron
Beiträge: 38
Registriert: 24. Juli 2007 11:53
Wohnort: Karlsruhe
Kontaktdaten:

QTreeItem und SIGNAL()

Beitrag von D_ron »

Hallo,

ich habe ein QTreeWidgetItem (TOPLEVEL) dem zur Laufzeit mehrere Childs angefügt werden.

Für diese beiden Childs möchte ich das ItemClicked()-Signal an einen gesonderten Slot hängen.

Dazu folgender Code:

Anmerkung: local_serialWigetItem = Toplevelitem

Code: Alles auswählen

for(int iSerialCounter = 0; iSerialCounter < local_serialWigetItem->childCount(); iSerialCounter++){
	
bool bReturn = connect(local_serialWigetItem->child(iSerialCounter), SIGNAL(itemClicked(QTreeWidgetItem*, int)), ui.TreeWidget, SLOT(showInfo(QTreeWidgetItem*, int))); 
			
}//for
Folgenden Compilerfehler erhalte ich:
Error 2 error C2664: 'bool QObject::connect(const QObject *,const char *,const QObject *,const char *,Qt::ConnectionType)' : cannot convert parameter 1 from 'QTreeWidgetItem *' to 'const QObject *'
neuschi
Beiträge: 78
Registriert: 23. Mai 2007 10:59

Re: QTreeItem und SIGNAL()

Beitrag von neuschi »

D_ron hat geschrieben:Hallo,

ich habe ein QTreeWidgetItem (TOPLEVEL) dem zur Laufzeit mehrere Childs angefügt werden.

Für diese beiden Childs möchte ich das ItemClicked()-Signal an einen gesonderten Slot hängen.
Vielleicht liegt das daran, dass die Mehrzahl von child "children" lautet .:wink:

Im Ernst:

QTreeWidgetItem ist nicht von QObject abgeleitet, also funktionieren Signals+Slots damit nicht.


Folgenden Compilerfehler erhalte ich:
Das ist dann mehr ein Compile-Fehler und kein Compiler-Fehler :wink:

\Ralf
lepsai
Beiträge: 573
Registriert: 14. September 2004 21:33
Wohnort: Berlin
Kontaktdaten:

Beitrag von lepsai »

Um das zu erreichen, was du willst, musst du eine Liste mit den "gesonderten" Items anlegen, und in deinem Slot prüfen, ob das auslösende Item in der Menge drin ist oder nicht. Dann kannst du entweder deine Logik für diese "Sonder"-Items direkt umsetzen oder ein weiteres Signal generieren.
Antworten