SIGNAL-SLOT-Problem

Alles rund um die Programmierung mit Qt
Antworten
B-Barth
Beiträge: 5
Registriert: 18. Oktober 2007 18:02

SIGNAL-SLOT-Problem

Beitrag von B-Barth »

Hallo.

Ich habe ein Problem mit dem connect-Befehl. Habe im zugehörigen Header den privat SLOT

Code: Alles auswählen

QString imgContrast(QString prev_wtext);
angelegt. Nun wollte ich meine QAction "contrastAct" mittels connect verbinden. Das sieht bei mir dann so aus:

Code: Alles auswählen

connect(contrastAct, SIGNAL(triggered()), this, SLOT(imgContrast(QString)));
Beim Ausführen bekomme ich immer die Meldung "QObject::connect: Incompatible sender/receiver arguments QAction(triggered()) --> MainWindow::imgContrast(QString)". Ohne ein Funktionsargument für imgContrast funktioniert alles; das ist aber leider keine Lösung.

Ich bin mir sicher, ich habe irgendwas übersehen/falsch gemacht. Nur was?
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

tirggered() hat nunmal keine Parameter - wie soll imgContrast() dann ein Parameter übergeben werden??
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
B-Barth
Beiträge: 5
Registriert: 18. Oktober 2007 18:02

Beitrag von B-Barth »

Ok, klingt logisch. Und was soll ich dann anstelle von SIGNAL(triggered()) als zweites Argument von connect einfügen, damit meine Funktion den QString bekommt?
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Erstmal solltest Du dir überlegen was für ein String überhaupt übergeben werden soll... ich mein er kann sich ja nicht jedesmal einen aussuchen !?
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
B-Barth
Beiträge: 5
Registriert: 18. Oktober 2007 18:02

Beitrag von B-Barth »

Hab jetzt in Anlehnung an Wikipedia mein eigenes Signal geschrieben:

Code: Alles auswählen

signals:
void wtextChanged(QString new_wtext);
Mein neuer connect-Befehl sieht dann so aus:

Code: Alles auswählen

connect(contrastAct, SIGNAL(wtextChanged(QString), this, SLOT(imgContrast(QString)));
Funktionieren tut es leider immer noch nicht. Jetzt bekomme ich die Meldung: "No such signal QAction::wtextChanged(QString)".

Mir fällt allerdings auch nicht neues mehr ein. Kann mir jemand hilfreich unter die Arme greifen? Vielen Dank im Voraus.
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Da Du nicht im Ansatz sagst was Du überhaupt willst und imho auch keine Tutorials durchgelesen hast (http://doc.trolltech.com/4.3/signalsandslots.html) ist meine Anwort: nein!
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Antworten