Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. QML and Qt Quick
  4. Cannot connect MyClass::data(QVariant) to (null)::updateData(QVariant)
Forum Updated to NodeBB v4.3 + New Features

Cannot connect MyClass::data(QVariant) to (null)::updateData(QVariant)

Scheduled Pinned Locked Moved QML and Qt Quick
17 Posts 2 Posters 5.4k Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • p3c0P Offline
    p3c0P Offline
    p3c0
    Moderators
    wrote on last edited by
    #7

    It's Window not Windows. Window here refers to the root element which you have used in the QML file.
    I think you must start with the basics of QML first.

    157

    1 Reply Last reply
    0
    • H Offline
      H Offline
      houmingc
      wrote on last edited by
      #8

      Thanks, QMetaObject::InvokeMethod works better than signals/slot for C++ invoking QML. From same document, QML invoking C++, i could not compile, below is my code. Can help?
      @
      -----------------header file myclass----------------
      #include <QDebug>

      class MyClass: public QObject
      {
      Q_OBJECT
      public slots:
      void cppSlot(const QString &msg){
      qDebug()<<"Called the c++ slot with message"<<msg;
      }
      };

      -----------------cpp file----------------
      #include <QApplication>
      #include <QQmlApplicationEngine>
      #include <QQuickView>
      #include <QDebug>
      #include "myclass.h"

      int main(int argc, char *argv[])
      {
      QGuiApplication app(argc, argv);

      QQuickView view("qrc:///main.qml");
      QObject *item= view.rootObject();
      
      MyClass myClass;
      QObject::connect(item,SIGNAL(qmlSignal(QString)),&myClass,SLOT(cppSlot(QString)));
      
      return app.exec&#40;&#41;;
      

      }

      -----------------qml file----------------
      import QtQuick 2.2
      import QtQuick.Controls 1.1

      ApplicationWindow {
      id: item
      visible: true
      width: 640
      height: 480
      title: qsTr("Hello World")

      signal qmlSignal(string msg)
      

      MouseArea{
      anchors.fill:parent
      onClicked: item.qmlSignal("Hello from QML")
      }
      }
      @

      1 Reply Last reply
      0
      • p3c0P Offline
        p3c0P Offline
        p3c0
        Moderators
        wrote on last edited by
        #9

        What error do you get during compiling?

        157

        1 Reply Last reply
        0
        • p3c0P Offline
          p3c0P Offline
          p3c0
          Moderators
          wrote on last edited by
          #10

          To use ApplicationWindow/Window you will need to use QQmlApplicationEngine and not QQuickView. The error should be at runtime not compiletime.

          157

          1 Reply Last reply
          0
          • H Offline
            H Offline
            houmingc
            wrote on last edited by
            #11

            error at QQuickView and QObject statement.

            @

            no matching function for call to 'QQuickView::QQuickView(const char[16])'
            cannot convert 'QQuickItem' to 'QObject *' in initialization.
            @

            1 Reply Last reply
            0
            • p3c0P Offline
              p3c0P Offline
              p3c0
              Moderators
              wrote on last edited by
              #12

              Use QQmlApplicationEngine for loading ApplicationWindow/Window.
              @
              QQmlApplicationEngine engine;
              engine.load(QUrl(QStringLiteral("qrc:///main.qml")));
              QObject *rootObject= engine.rootObjects().first();
              QObject::connect(rootObject,SIGNAL(qmlSignal(QString)),
              &myClass,SLOT(cppSlot(QString)));
              @

              Above should work.

              157

              1 Reply Last reply
              0
              • H Offline
                H Offline
                houmingc
                wrote on last edited by
                #13

                insert statement 'MyClass myclass;' before QObject::connect.
                2 error encounter:
                undefined reference to 'vtable for MyClass'
                ld returned 1 exit status

                1 Reply Last reply
                0
                • p3c0P Offline
                  p3c0P Offline
                  p3c0
                  Moderators
                  wrote on last edited by
                  #14

                  Run qmake and then Rebuild.

                  157

                  1 Reply Last reply
                  0
                  • H Offline
                    H Offline
                    houmingc
                    wrote on last edited by
                    #15

                    I created a new header file for class 'MyClass'
                    Now my error is
                    QQmlApplicationEngine failed to load component
                    Assert:"!isEmpty()" in file /include/QtCore/qlist.h
                    The program has unexpectedly finished.

                    1 Reply Last reply
                    0
                    • p3c0P Offline
                      p3c0P Offline
                      p3c0
                      Moderators
                      wrote on last edited by
                      #16

                      I don't know. You must have misplaced something somewhere. Better would be to create a new project with that class and qml file. Use the code that i posted above to launch the qml file. It is not a very complicated code.

                      157

                      1 Reply Last reply
                      0
                      • H Offline
                        H Offline
                        houmingc
                        wrote on last edited by
                        #17

                        Thanks very much.

                        1 Reply Last reply
                        0

                        • Login

                        • Login or register to search.
                        • First post
                          Last post
                        0
                        • Categories
                        • Recent
                        • Tags
                        • Popular
                        • Users
                        • Groups
                        • Search
                        • Get Qt Extensions
                        • Unsolved