Seite 1 von 1

[gelöst] Frage zu Signals and Slots

Verfasst: 12. Juli 2007 15:45
von stitch
Hallo,

ich bin totaler Qt und C++ N00b, habe mal eine Frage.

Folgendes Problem:

Ich habe eine Reihe Buttons (QPushButton), beim klicken soll eine eigene Methode(Slot) aufgerufen werden, welcher einen QString als Parameter erwartet.
Verstehe ich das richtig, dass es vorgesehen ist, dass beim Klick auf einen Button nur eine Methode abgearbeitet werden kann, welche keinerlei Parameter enthält?
Das clicked() Signal vom QPushButton kennt ja keinen QString Parameter. Ich kann leider auch nicht für jeden Button einen eigenen Slot bauen, da die Anzahl der Buttons dynamisch sind und es soll eigentlich auch immer das gleiche gemacht werden. Die Methode brauch halt einen QString mit der sie dann weiterarbeitet.

Kann mir jemand einen Tipp geben wie ich das am einfachsten realisiere?
Selbst wenn ich eine eigene Klasse von QPushbutton ableite und dann ein Signal mit einem QString als Parameter implementiere. Wie kann ich dann beim definieren der connection zwischen dem Signal und dem Slot festlegen welchen Wert der Qstring hat, der übergeben werden soll?
Ich hab nämlich ein XML File, welches durchlaufen werden soll in dem jede Menge Buttons definiert sind. Eine Info pro Button soll dann beim klick darauf an eine Methode weitergereicht werden.

Viele Grüße,
Christopher

Verfasst: 12. Juli 2007 15:56
von @udisello
Du kannst doch mehrere Signale mit einem Slot verbinden. Also alle ButtonClicks zu einem Slot und in dieser Funktion dann ein Signal mit dem entsprechenden String senden.

Re: Frage zu Signals and Slots

Verfasst: 12. Juli 2007 16:00
von macman
stitch hat geschrieben:Kann mir jemand einen Tipp geben wie ich das am einfachsten realisiere?
QSignalMapper. Kam hier schon öfter auf den Tisch.

Re: Frage zu Signals and Slots

Verfasst: 12. Juli 2007 18:08
von stitch
macman hat geschrieben:QSignalMapper. Kam hier schon öfter auf den Tisch.
Vielen Dank! Habs jetzt mit dem QSignalMapper Objekt realisiert, funktioniert super!