[geloest] Problem mit connect
[geloest] Problem mit connect
Hi,
zum ertsen mal habe ich mit dem Befehl Connect Probleme.
Bei den 2 Befehlen
connect(m_pOptoInit, SIGNAL(sig_TcpConnected()), this, SLOT(tcpConnected()));
connect(m_pOptoInit, SIGNAL(sig_TcpDisconnected()), this, SLOT(tcpDisconnected()));
bekomme ich die Fehlermeldung:
no matching function for call to `SourceMostOptolyzer::connect(OptoInit*&, const char*, SourceMostOptolyzer* const, const char*)'
Die Signale sind in einer anderen Klasse selbst erstellt.
Namen der Signale, Slots un des Senders sind richtig...
Die Klassen sind wie folgt definiert
Die Klasse mit dem Slot:
class x : public Source // Source ist von Qthread abgeleitet
{
Q_OBJECT
...
};
Die Klasse des Signal-Senders :
class OptoInit
{
Q_OBJECT
...
};
Wenn ich die beiden connects auskommentiere, dann bekomme ich die selbe Fehlermeldung mit anderen connects in der Signal-Sender-Klasse.
Hat da jemand eine Idee, woran das liegen könnte?
Gruß
Depp153
PS: Das ist ein teilprojekt, das ich gerade in ein anderes Integriere.
Vor der Integration war die Klasse OptoInit von QDialog une einer *.ui abgeleitet. Im Hauptprojekt wurde nun aber festgelegt, dass es eine extra klasse gibt, die von dem Ui abgeleitet wird (configDialog) und ich über diese dann meine Zugriffe machen muss...
zum ertsen mal habe ich mit dem Befehl Connect Probleme.
Bei den 2 Befehlen
connect(m_pOptoInit, SIGNAL(sig_TcpConnected()), this, SLOT(tcpConnected()));
connect(m_pOptoInit, SIGNAL(sig_TcpDisconnected()), this, SLOT(tcpDisconnected()));
bekomme ich die Fehlermeldung:
no matching function for call to `SourceMostOptolyzer::connect(OptoInit*&, const char*, SourceMostOptolyzer* const, const char*)'
Die Signale sind in einer anderen Klasse selbst erstellt.
Namen der Signale, Slots un des Senders sind richtig...
Die Klassen sind wie folgt definiert
Die Klasse mit dem Slot:
class x : public Source // Source ist von Qthread abgeleitet
{
Q_OBJECT
...
};
Die Klasse des Signal-Senders :
class OptoInit
{
Q_OBJECT
...
};
Wenn ich die beiden connects auskommentiere, dann bekomme ich die selbe Fehlermeldung mit anderen connects in der Signal-Sender-Klasse.
Hat da jemand eine Idee, woran das liegen könnte?
Gruß
Depp153
PS: Das ist ein teilprojekt, das ich gerade in ein anderes Integriere.
Vor der Integration war die Klasse OptoInit von QDialog une einer *.ui abgeleitet. Im Hauptprojekt wurde nun aber festgelegt, dass es eine extra klasse gibt, die von dem Ui abgeleitet wird (configDialog) und ich über diese dann meine Zugriffe machen muss...
Zuletzt geändert von depp153 am 24. September 2009 14:27, insgesamt 1-mal geändert.
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
Vielen Dank erst mal für die Antwort.
Aber ich benutze (noch) keine Vorwärtsdeklarationen und die OptoInit hab ich per include drinne.
Das ist es wohl dann leider nicht...
Außerdem, ich hab gerade mein kleines Versuchs-Projekt umgebaut, dass ich auch die Klasse ConfigDialog benutze.
Und da hab ich jetzt auch das selbe Problem.
Wobei ich jetzt x nicht mehr von Source ableite, sondern direkt von QThread.
Aber ich benutze (noch) keine Vorwärtsdeklarationen und die OptoInit hab ich per include drinne.
Das ist es wohl dann leider nicht...
Außerdem, ich hab gerade mein kleines Versuchs-Projekt umgebaut, dass ich auch die Klasse ConfigDialog benutze.
Und da hab ich jetzt auch das selbe Problem.
Wobei ich jetzt x nicht mehr von Source ableite, sondern direkt von QThread.
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
nach dem ich jetzt alles geputzt habe (clean project) und dann PC neu gestartet (vermutlich unnötig der neustart), war dieses connect jetzt in Ordung.
Hat da evtl. der moc irgendwas nit sauber überschrieben???
K.A.
allerdings hab ich jetzt an anderer Stelle dieses connect problem.
In der OptoInit, welche ein Signal von ConfigDialog bekommt.
Hier die Def. der Klassen in den header-Files:
und hier die connect in der optoInit:
Das Problem besteht bei sämtlichen connects die ich hier einbauen will...
Hat da evtl. der moc irgendwas nit sauber überschrieben???
K.A.
allerdings hab ich jetzt an anderer Stelle dieses connect problem.
In der OptoInit, welche ein Signal von ConfigDialog bekommt.
Hier die Def. der Klassen in den header-Files:
Code: Alles auswählen
#include "configure.h"
#include <QObject>
...
class OptoInit : public QObject
{
Q_OBJECT
private:
Configure* m_pConfigure;
...
private slots:
bool connect();
...
};
#include <QDialog>
#include <ui_configDialog.h>
#include <QObject>
...
class Configure : public QDialog, Ui::configDialog
{
Q_OBJECT
private:
...
setupConnections()
...
signals:
void sig_startMeasurment();
...
};Code: Alles auswählen
void OptoInit::setupConnections()
{
connect(m_pConfigure, SIGNAL(sig_startMeasurment()), this, SLOT(connect()));
...
}Erstens: nur ein Hinweis:depp153 hat geschrieben: und hier die connect in der optoInit:Das Problem besteht bei sämtlichen connects die ich hier einbauen will...Code: Alles auswählen
void OptoInit::setupConnections() { connect(m_pConfigure, SIGNAL(sig_startMeasurment()), this, SLOT(connect())); ... }
Measurement schreibt man mit drei "e".
Dann:
Du darfst eine eigene Funktion nicht gleich nennen, wie eine Qt-Funktion.
"connect" existiert eben schon.
Linux, das längste Text-Adventure aller Zeiten
Man, dass mir das nicht aufgefallen ist, dass ich das connect quasi überschreibe....
Da kann ich nur noch den Koprschütteln.
Ich glaub ich geh nochmal in das erste Semester und hör mir die Stelle mit Schlüsselwörter und so weiter an, genauso wie überschreiben von Funktionen....
Vielen DANK an alle!!!
Ohne euch würde ich bestimmt in 3 Tagen noch suchen.
Ich hoffe, dass ich auch mal so fit bin, dass ich hier entsprechende Antworten geben kann.
Danke nochmal
Gruß
Depp153