Signal Slot Problem (No such slot...)
Verfasst: 3. Juli 2011 23:44
Hallo Leute,
ich habe vor einiger Zeit angefangen mich mit QT zu beschäftigen und habe bei meinem aktuellen Projekt ein Problem mit dem Signal Slot Konzept für eigene Slots.
Bisher habe ich eher selten eigene Slots benötigt und Sie wenn in der MainWindow Klasse belassen, aktuell benötigt ich jedoch einen eigenen Slot der in eine andere Klasse gehört und auch einen Paramter übergeben bekommt. Die Parameterübergabe habe ich gelöst über die Klasse SignalMapper.
Mein Problem besteht darin, das der Connect Befehl meckert beim Programmstart, das der Slot nicht existiert, weil ich was falsch bei der Membervariable gemacht habe von der Klasse wo der Slot drin ist, vermutlich bei der Verervung. Ich muss dazu sagen, das ich mit dem Thema Vererbung in C++ noch nicht so viel Erfahrung habe und da eher noch ein Laie bin.
Die Meldung bei Programmstart lautet:
Der Konstruktor der mainwindow.cpp
Die uebung_auswahl.h
Und die uebung_auswahl.cpp
Ich hoffe das Ihr mir bei diesem vermutlich ganz dummen Fehler helfen könnt, das der Slot doch noch funktioniert;)
Vielen Dank!
Schöne Grüße
apollox
ich habe vor einiger Zeit angefangen mich mit QT zu beschäftigen und habe bei meinem aktuellen Projekt ein Problem mit dem Signal Slot Konzept für eigene Slots.
Bisher habe ich eher selten eigene Slots benötigt und Sie wenn in der MainWindow Klasse belassen, aktuell benötigt ich jedoch einen eigenen Slot der in eine andere Klasse gehört und auch einen Paramter übergeben bekommt. Die Parameterübergabe habe ich gelöst über die Klasse SignalMapper.
Mein Problem besteht darin, das der Connect Befehl meckert beim Programmstart, das der Slot nicht existiert, weil ich was falsch bei der Membervariable gemacht habe von der Klasse wo der Slot drin ist, vermutlich bei der Verervung. Ich muss dazu sagen, das ich mit dem Thema Vererbung in C++ noch nicht so viel Erfahrung habe und da eher noch ein Laie bin.
Die Meldung bei Programmstart lautet:
Bezieht sich auf die letzte Zeile im Konstruktor der mainwindow.cppObject::connect: No such slot QObject::auswahl(QString) in ...
Der Konstruktor der mainwindow.cpp
Code: Alles auswählen
Uebung_Auswahl *uebung = new Uebung_Auswahl();
QSignalMapper* signalMapper = new QSignalMapper (this);
connect( ui->actionDas_1x1, SIGNAL(triggered()), signalMapper, SLOT(map()) );
connect( ui->actionTextaufgaben, SIGNAL(triggered()), signalMapper, SLOT(map()) );
signalMapper->setMapping(ui->actionDas_1x1, "1mal1");
signalMapper->setMapping(ui->actionTextaufgaben, "Textaufg");
connect( signalMapper, SIGNAL(mapped(QString)), uebung, SLOT(auswahl(QString)) );Code: Alles auswählen
#include "QString"
#include "QObject"
class Uebung_Auswahl : public QObject
{
public:
Uebung_Auswahl();
public slots:
void auswahl(QString ueb_name);
};Code: Alles auswählen
#include "QDebug"
Uebung_Auswahl::Uebung_Auswahl()
{
}
void Uebung_Auswahl::auswahl(QString ueb_name)
{
qDebug() << "Aufruf von Funktion 'Uebung_Auswahl::auswahl'!";
}Vielen Dank!
Schöne Grüße
apollox