Seite 1 von 1

Signal Slot Problem

Verfasst: 13. August 2010 13:32
von draco
Hallo zusammen,

ich fange gerade mit Qt an und frage mich wie ich ein Button dazu bewegen kann den Text eines Labels zu ändern?

So geht es ja wegen der unterschiedlichen Parameter nicht:

Code: Alles auswählen

QObject::connect(button, SIGNAL(clicked()), label, SLOT(setText("Button geklickt")));
Wie macht man das richtig?

Gruß Draco

Verfasst: 13. August 2010 13:44
von franzf
Dein Label liegt sicher irgendwo in einer eigenen Klasse. Definier dort einen SLOT, der mit den Parametern des button-clicked()-SIGNALs kompatibel ist und setze dort den Text selber:

Code: Alles auswählen

class Widget : public QWidget {
Q_OBJECT
QLabel* lbl;
QPushButton* btn;
public:
  Widget() {
    lbl = new QLabel;
    btn = new QPushButton;
    ///////
    connect(btn, SIGNAL(clicked()), SLOT(changeLabel()));
  }
public slots:
  void changeLabel() {
    lbl->setText("Hallo, Applikation");
  }
};

Verfasst: 14. August 2010 10:52
von draco
Danke das hat mir sehr geholfen. Eine Frage hätte ich zu deinem connect noch. Fehlt vor dem SLOT nicht noch der this Zeiger auf das eigene Objekt?

Gruß Draco

Verfasst: 14. August 2010 12:33
von padreigh
draco hat geschrieben:Fehlt vor dem SLOT nicht noch der this Zeiger auf das eigene Objekt?
Gruß Draco
Schau halt mal in die Online-Dokumentation, dann siehst du das es verschiedene Versionen von connect(...) gibt ... das beantwortet dann deine Frage.

Verfasst: 14. August 2010 16:31
von draco
Ja danke, es gibt genau zwei. Aber es hätte ja auch ein Tippfehler sein können.

Entschuldigung dass ich gefragt habe ohne vorher in die Doku zu schauen. Ich weiß aus anderen Foren dass sich da einige User sehr dran aufhängen, aber es gibt ja auch welche die sich bei vertippten oder vergessenen Wörter fast zu Tode ärgern.

Gruß Draco und immer locker bleiben :wink:

Verfasst: 15. August 2010 11:06
von padreigh
Ich seh das nicht verbissen ... nur "manchmal" kommen Fragen die 2.75s Eigeninitiative klären können - mit dem unheimlichen Vorteil das man nebenbei auch noch anderes Zeug sieht/überfliegt und damit die Methoden der Klassen besser kennenlernt. Bei anderen Problemen, immer her mit, da lerne ich häufig auch dran - kenne Qt auch erst seit 1/2 Jahr.