Hallo! Ich habe ein Problem mit Signals und Slots. Folgender Beispielcode beschreibt meine Programmstruktur.
class Oberklasse : public QThread {
........Code........
};
class Unterklasse1 : public Oberklasse {
.........Code......
signals:
void meinSignal(QString);
};
class Unterklasse2 : public Oberklasse {
........Code........
public slots:
void meinSlot(QString);
};
int main() {
Unterklasse1 * class1 = new Unterklasse1();
Unterklasse2 * class2 = new Unterklasse2();
QObject::connect(class1, SIGNAL(meinSignal(QString()),
class2, SLOT(meinSlot(QString()));
}
Meine Oberklasse erbt von QThread. Es gibt zwei Unterklassen die jeweils von der Oberklasse erben.
In der main() will ich nun ein SIGNAL von der einen Unterklasse mit einem SLOT von der anderen Unterklasse verbinden.
Kompilieren tut das ganze. Zur Laufzeit krieg ich dann allerdings folgenenden Fehler:
Object::connect: No such slot Oberklasse::meinSlot(QString)
Was läuft falsch? und vor allem steht in der Fehlermeldung, dass die Oberklasse den SLOT nicht hat. Hat sie ja aber tatächlich nicht, denn Unterklasse2 besitzt meinSlot(QString) und bei ihr versuch ich ja auch zu connecten.
Fehler: No such Signal
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
und es müßte doch wohl
anstelle
heißen. oder ?
gruß Obel
Code: Alles auswählen
QObject::connect(class1, SIGNAL(meinSignal(QString),class2, SLOT(meinSlot(QString)); Code: Alles auswählen
QObject::connect(class1, SIGNAL(meinSignal(QString()),class2, SLOT(meinSlot(QString())); gruß Obel