Qt4: Singal und Slot
Verfasst: 13. Oktober 2006 21:13
Hallo,
ich bin etwas verwirrt mit den Singalen und Slots. Im wesentlichen zwei Fragen fuers erste:
1. Im Designer kann ich Signale und Slots verbinden. Jetzt muss ich im meinem C++ Code aber immer noch manuell sowas wie
einbauen. Wieso muss ich an zwei Stellen zweimal das gleiche pflegen? In einem frueheren Thread hattet ihr mir netterweise folgenden Beispiel Code gegeben:
Ich hatte eine Anwendung mit einem OK und einem Cancel Button angelegt. Im Coding oben ist nur der OK Button erwaehnt, der Cancel Button funktioniert aber auch . Im Designer ist angegeben:
okButton clicked() TestApp accept()
cancelButton clicked() TestApp reject()
Damit stimmt das mit dem ok Button im Designer nicht mit dem im Coding ueberein.
Also wann muss ich was machen?
2. Was muss ich machen wenn ich einen eigenen Slot anlegen will? Das geht im Designer ja nicht mehr. Ich will beim Druecken des OK buttons eine MessageBox erzeugen. Wollte dazu einen Slot/Methode/Funktion showBox() anlegen. Ich vermute, dass ich im Designer gar nichts machen muss aber im obigen Coding den connect String manuell anlegen muss. Ist meine Vermutung da richtig?
Danke,
J.
ich bin etwas verwirrt mit den Singalen und Slots. Im wesentlichen zwei Fragen fuers erste:
1. Im Designer kann ich Signale und Slots verbinden. Jetzt muss ich im meinem C++ Code aber immer noch manuell sowas wie
Code: Alles auswählen
connect(okButton, SIGNAL (clicked()), this, SLOT(slotClose()));
Code: Alles auswählen
#include "testapp.h"
#include <QtGui>
#include <QtCore>
TestApp::TestApp(QDialog *parent) : QDialog(parent)
{
setupUi(this);
connect(okButton, SIGNAL (clicked()), this, SLOT(slotClose()));
}
TestApp::~TestApp()
{}
void TestApp::slotClose()
{
close();
}
okButton clicked() TestApp accept()
cancelButton clicked() TestApp reject()
Damit stimmt das mit dem ok Button im Designer nicht mit dem im Coding ueberein.
Also wann muss ich was machen?
2. Was muss ich machen wenn ich einen eigenen Slot anlegen will? Das geht im Designer ja nicht mehr. Ich will beim Druecken des OK buttons eine MessageBox erzeugen. Wollte dazu einen Slot/Methode/Funktion showBox() anlegen. Ich vermute, dass ich im Designer gar nichts machen muss aber im obigen Coding den connect String manuell anlegen muss. Ist meine Vermutung da richtig?
Danke,
J.