Probleme mit Signal/Slot Verbindungen

Alles rund um die Programmierung mit Qt
Antworten
bigmil
Beiträge: 23
Registriert: 18. Mai 2005 11:06

Probleme mit Signal/Slot Verbindungen

Beitrag von bigmil »

Hallo zusammen,

ich habe ein MainWidget mit dem Qt-Designer erstellt und zusätzlich noch eine eigene Klasse (InterfaceComp). Diese beiden Klassen sollten nun miteinander kommunzieren können. Hier bietet sich die Signal/Slot Funktionalität an, was ich auch implementiert haben. Nur leider funktioniert dies nicht, der Kompiler bringt mir gewisse Fehlermeldungen.

Hier der Codeausschnitt aus MainWidget.h:
Das Signal addASMComp(QString, QString, QString, QString) löse ich im MainWidget.cpp auch mit einem emit addASMComp(bla, bli, blo, blu) aus.

Code: Alles auswählen

#ifndef MAINWIDGET_H
#define MAINWIDGET_H

#include <qvariant.h>
#include <qmainwindow.h>

class InterfaceComp;

class MainWidget : public QMainWindow
{
    Q_OBJECT

public:
    MainWidget( QWidget* parent = 0, const char* name = 0, WFlags fl = WType_TopLevel );
    ~MainWidget();


signals:
    void addASMComp(QString, QString, QString, QString);

};

#endif // MAINWIDGET_H

Hier der Codeausschnitt aus InterfaceComp.h:

Code: Alles auswählen

#ifndef INTERFACECOMP_H
#define INTERFACECOMP_H

#include "mainwidget.h"
#include <qobject.h>

class MainWidget;

class InterfaceComp : public QObject
{
    Q_OBJECT
    
public:
    InterfaceComp();
    ~InterfaceComp()	{}
    
    MainWidget *mainwidget;
    
    connect( mainwidget, SIGNAL( addASMComp( QString, QString, QString, QString ) ) ,
	     this, SLOT( setDataASM( QString, QString, QString, QString ) ) );
    
public slots:
    void setDataASM(QString blabla, QString blibli, QString bloblo, QString blublu);
 
};

#endif

Die Fehlermeldung im Kompiler:

Code: Alles auswählen

interfacecomp.h(28) : error C2061: Syntaxfehler: Bezeichner 'mainwidget'
interfacecomp.h(29) : warning C4183: 'connect': Rückgabetyp fehlt; Memberfunktion, die 'int' zurückgibt wird angenommen
mainwidget.cpp
interfacecomp.h(28) : error C2061: Syntaxfehler: Bezeichner 'mainwidget'
interfacecomp.h(29) : warning C4183: 'connect': Rückgabetyp fehlt; Memberfunktion, die 'int' zurückgibt wird angenommen
interfacecomp.cpp
interfacecomp.h(28) : error C2061: Syntaxfehler: Bezeichner 'mainwidget'
interfacecomp.h(29) : warning C4183: 'connect': Rückgabetyp fehlt; Memberfunktion, die 'int' zurückgibt wird angenommen


Irgendwie scheint mir die connect()-Deklaration nicht ganz korrekt zu sein. Für einen Hinweis/Tipp, was ich hier falsch anpacke, wäre ich Euch sehr dankbar.

Besten Dank im Voraus
Gruess bigmil
lepsai
Beiträge: 573
Registriert: 14. September 2004 21:33
Wohnort: Berlin
Kontaktdaten:

Beitrag von lepsai »

~InterfaceComp() {}

MainWidget *mainwidget;

connect( mainwidget, SIGNAL( addASMComp( QString, QString, QString, QString ) ) ,
this, SLOT( setDataASM( QString, QString, QString, QString ) ) );
Was soll das denn?

seit wann rufen wir eine Funktion ausserhalb einer Funktiondefinition auf?

C++ lernen, bevor man sich mit Qt beschäftigt...
Antworten