Signals and Slots



  • Hallo!
    mal vorweg: ich bin C++-newbie.
    ich arbeite mich gerade in Signals and Slots ein und erhalte noch einen Fehler beim Aufruf eines ConnectHandlers. (2664 Konvertierungdes Parameters A* in QObect* nicht möglich).

    ich habe also eine Klasse A mit Header:

    #include <QObject>

    class A : public QObject{

    Q_OBJECT
    ....
    }
    und eine Funktion connectHeader(.., const QObject* object, const char* method);

    A.cpp sieht so aus:

    #include "A.hpp"

    ...
    concreteObject.connectHandler(.., * this, SLOT(doSomething()));

    und gibt den Fehler C2664 Konvertierungdes Parameters A* in QObect* nicht möglich.

    Ich glaube dass der Fehler im Makefile liegt, oder sieht jemand noch was anderes?
    Der Header ist ge-moct:
    MOC_HEADERS = $(MODINC)/A.hpp

    Mehr habe ich jedoch im Makefile nicht geändert um Signals and Slots zu verwende.

    Danke für eure Hinweise!



  • Hallo, ich glaube du musst ein paar mehr Informationen angeben, damit dir jemand helfen kann.

    Welche Entwicklungsumgebung bzw. welchen Compiler verwendest du denn?

    Visual Studio? Qt Creator? MS Compiler oder Mingw??

    Ein Code Schnipsel wäre gut.

    Hast du die Methode die als Slot verwendet wird auch in der Header Datei in der Slots Rubrik untergebracht?

    Zum Beispiel:

    class example : QObject
    {
         Q_OBJECT
    
    public slots:
         void slot(int i);
    }
    


  • ich verwende Visual Studio.
    ja, doSomething steht im Header von A drin.

    #include <QObject>

    class A : public QObject{

    Q_OBJECT
    ....
    void doSomething()
    {
    ...
    }

    }

    Der Code ist leider sehr umfangreich. Das war oben mein Versuch den code zu abstrahieren und alles unwesentliche wegzulassen.

    Das ganze file kann ich wohl nicht hochstellen aber wenn du noch Infos willst, einfach sagen 😉


Anmelden zum Antworten