Qt World Summit: Register Today!

Issues of Q_DECLARE_METATYPE in establishing signal & slot connection

  • Hi,
    I am trying to establish a connection between signal and slot and using the approach of exposing slot to QML by setContextProperty in my main.cpp

    I have declare a slot in myClass like this
    @public slots:
    void cppSlot(const QString &msg) {
    qDebug() << "Called the C++ slot with message:" << msg;
    Then exposing it to qml in my CPP like this

    @ QDeclarativeView view;
    MyClass- myClass;
    view.rootContext()->setContextProperty("myObject", &myClass);


    But it is throwing compile time error "redefinition of 'struct qmetatypeid"
    any idea what i have missed...thanks

  • Moderators

    How does the subject relate to your message? Are you using Q_DECLARE_METATYPE at all in your code? This code should work without declaring any new metatypes.

  • No I have not used Q_DECLARE_METATYPE in my code, and I know that this code should work without it. But recently found a link stating that it could be a bug in qt5. you can check here


    I hope it is right...

  • Moderators

    That does not seem to be the same case, but I have only looked briefly. Are you tied to QDeclarative? Maybe you can move to QtQuick 2 and QQuickView instead?

Log in to reply