Hallo,
ich arbeite mich gerade etwas in QT ein. Als IDE benutze ich QT Creator
In meinem Programm habe ich neun Buttons die alle den selben Slot auslösen sollen. In diesem Slot soll unterschieden werden können, welcher Button gedrückt wurde.
Wie löse ich dieses Problem am besten? Ich habe bereits versucht, bei den neun Connects der Signals mit dem Slot, dem Slot einen Parameter mitzugeben, dies geht aber anscheinend nicht.
Schon einmal vielen Dank für die Hilfe!
Gruß
David Weber
[Anfängerfrage]Mehrere Signals, ein Slot
-
-=Freaky=-
- Beiträge: 503
- Registriert: 29. Dezember 2006 22:54
- Wohnort: HL
im slot kannst du die funktion sender() benutzen.
http://doc.qtsoftware.com/4.5/qobject.html#sender
mfg,
julian
http://doc.qtsoftware.com/4.5/qobject.html#sender
mfg,
julian
oder besser: QSignalMapper: http://doc.trolltech.com/4.5/qsignalmapper.html
Vielen Dank für eure Antworten!
Ich habe versucht den QSignalMapper einzubauen, allerdings bekomme ich ich bei dem hinzufügen einer Connection immer sofort einen Speicherzugriffsfehler.
Hier ist der Backtrace:
System ist ein aktuelles Archlinux System:
QT: 4.5.2
gcc: 4.4.0
Wisst ihr wo der Fehler liegt oder ist das ein Bug in den aktuellen Paketen?
Anbei sind meine Projektdateien.
Ich habe versucht den QSignalMapper einzubauen, allerdings bekomme ich ich bei dem hinzufügen einer Connection immer sofort einen Speicherzugriffsfehler.
Hier ist der Backtrace:
Code: Alles auswählen
#0 0x00007f00068d5791 in QObject::connect () from /usr/lib/libQtCore.so.4
#1 0x00000000004041b8 in Wins_Gui::insertButtons (this=0x7fff1b3044f0) at wins_gui.cpp:37
#2 0x0000000000403de8 in Wins_Gui (this=0x7fff1b3044f0, parent=0x0) at wins_gui.cpp:12
#3 0x0000000000403b8b in main (argc=1, argv=0x7fff1b304648) at main.cpp:7QT: 4.5.2
gcc: 4.4.0
Wisst ihr wo der Fehler liegt oder ist das ein Bug in den aktuellen Paketen?
Anbei sind meine Projektdateien.
- Dateianhänge
-
- 3wins.zip
- (222.79 KiB) 115-mal heruntergeladen
Zuletzt geändert von candux am 26. Juni 2009 22:20, insgesamt 1-mal geändert.
-
-=Freaky=-
- Beiträge: 503
- Registriert: 29. Dezember 2006 22:54
- Wohnort: HL
warum sollte man den verwenden, das versteh ich nicht so ganz.solarix hat geschrieben:oder besser: QSignalMapper: http://doc.trolltech.com/4.5/qsignalmapper.html
damit koennte man zusaetzlich parameter mitgeben, aber die waeren ja nur noetig, wenn es QObject::sender() nicht gaebe.
mfg,
julian
das ist kein sauberes OOP..warum sollte man den verwenden, das versteh ich nicht so ganz.
Kein wunder... du erstellst die Instanz NACHDEM du sie connectest..allerdings bekomme ich ich bei dem hinzufügen einer Connection immer sofort einen Speicherzugriffsfehler.
Code: Alles auswählen
this->insertButtons(); // connect buttonGroup....
buttonGroup = new QSignalMapper(this);
Zuletzt geändert von solarix am 27. Juni 2009 12:05, insgesamt 1-mal geändert.
-
-=Freaky=-
- Beiträge: 503
- Registriert: 29. Dezember 2006 22:54
- Wohnort: HL