Seite 1 von 1

Signal-Signal-Verbindungen

Verfasst: 1. Februar 2007 18:44
von René
Hallo,

ich habe in der Qt Dokumentation gelesen, dass statt der üblichen Signal-Slot Verbindungen auch Signal-Signal Verbindungen möglich sind. Leider konnte ich dazu kein Beispiel finden. Ich habe es einfach in meinem Quelltext ausprobiert. Es würde mir helfen, da im Slot nichts anderes passiert, als ein neues Signal zu senden. Leider funktioniert es aber nicht. Das neue Signal wird nicht gesendet. Im Quelltext habe ich es in etwa so stehen, Compilerfehler gibts keine:

relevantes aus dem h file:

Code: Alles auswählen

signals:
void newThreadedJob(Transaction *job);
relevantes aus dem cpp file:

Code: Alles auswählen

connect(button, SIGNAL(clicked()), this, SIGNAL(newThreadedJob(new Transaction())));
Das Signal "newThreadedJob" wird leider nicht gesendet, bzw. der damit verbundene Slot wird nicht aufgerufen. Weiß da jemand Rat ?

Verfasst: 1. Februar 2007 18:56
von Christian81
Mal wieder das übliche Problem:
Im connect kann man keine Parameter übergeben. Und man kann auch kein new oder was auch immer ausführen.
Würde man sehen wenn man beim Debuggen auf die Konsole schaut.

Verfasst: 1. Februar 2007 19:00
von René
Ja, hab's jetzt auch gesehen. Klingst ja schon ziemlich genervt. Wurde wohl schon oft falsch gemacht.

Naja, jedenfalls danke für den Tip. Dann muss ich wohl wieder den Umweg über die Signal-Slot-Verbindung gehen und im Slot dann entsprechend das Signal senden. Mir war eigentlich schon klar, das im connect keine Parameter stehen dürfen, aber diesmal hab ich einfach gepennt, nunja, kann ja mal passieren. Die Verlockung, das so zu vereinfachen war wohl zu groß ;-)

Verfasst: 1. Februar 2007 19:05
von Christian81
René hat geschrieben:Ja, hab's jetzt auch gesehen. Klingst ja schon ziemlich genervt. Wurde wohl schon oft falsch gemacht.
Das ist so jeder zweite Signal-Slot Frage hier :D
Man könnte also fast erstmal diese Lösung renischreiben ohne dass man sich den Text durchliest :lol: