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. Send QVariantList and QVariantMap to JavaScript Array and Object
Forum Updated to NodeBB v4.3 + New Features

Send QVariantList and QVariantMap to JavaScript Array and Object

Scheduled Pinned Locked Moved QML and Qt Quick
19 Posts 3 Posters 10.6k 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
    #9

    Ok. Then include this in main.cpp
    @
    #include <QtQuick>
    @

    157

    1 Reply Last reply
    0
    • B Offline
      B Offline
      beh_zad
      wrote on last edited by
      #10

      Thanks for replying, but the error occurred again.

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

        Are you still using QQuickView ? Why is there QGraphicsObject in error ?

        bq. QMetaObject::invokeMethod(QGraphicsObject*, const char [11], QArgument<QVariant>, QArgument<QVariant>)’ Q_ARG(QVariant, QVariant::fromValue(map)));

        157

        1 Reply Last reply
        0
        • B Offline
          B Offline
          beh_zad
          wrote on last edited by
          #12

          the whole codes is :

          in main.cpp

          #include <QtCore>
          #include <QtDeclarative>

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

          QDeclarativeView view(QUrl::fromLocalFile&#40;"qrc:///main.qml"&#41;);
          
          QVariantList list;
          list << 10 << QColor(Qt::green) << "bottles";
          
          QVariantMap map;
          map.insert("language", "QML");
          map.insert("released", QDate(2010, 9, 21));
          
          QMetaObject::invokeMethod( view.rootObject(), "readValues",
                                    Q_ARG(QVariant, QVariant::fromValue(list)),
                                    Q_ARG(QVariant, QVariant::fromValue(map)));
          
          view.setSource(QUrl::fromLocalFile&#40;"qrc:///main.qml"&#41;);
          view.show();
          
          return app.exec();
          

          }@

          in main.qml

          @import QtQuick 2.2
          import QtQuick.Window 2.1

          Item {
          function readValues(anArray, anObject) {
          for (var i=0; i<anArray.length; i++)
          console.log("Array item:", anArray[i])

              for (var prop in anObject) {
                  console.log("Object item:", prop, "=", anObject[prop])
              }
          }
          

          }@

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

            @
            QDeclarativeView view(QUrl::fromLocalFile("qrc:///main.qml"));
            @

            Don't use QDeclarativeView; use QQuickView instead.

            Your earlier code was correct:
            @
            #include <QGuiApplication>
            #include <QtQuick>

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

            QQuickView view(QUrl::fromLocalFile&#40;"main.qml"&#41;);
             
            QVariantList list;
            list << 10 << QColor(Qt::green) << "bottles";
             
            QVariantMap map;
            map.insert("language", "QML");
            map.insert("released", QDate(2010, 9, 21));
             
            QMetaObject::invokeMethod(view.rootObject(), "readValues",
                    Q_ARG(QVariant, QVariant::fromValue(list)),
                    Q_ARG(QVariant, QVariant::fromValue(map)));
             
            view.show();
            return app.exec();
            

            }
            @

            Try with this code again and check.

            157

            1 Reply Last reply
            0
            • B Offline
              B Offline
              beh_zad
              wrote on last edited by
              #14

              but this code show this error:
              error: no matching function for call to 'QMetaObject::invokeMethod(QQuickItem*, const char [11], QArgument<QVariant>, QArgument<QVariant>)'
              Q_ARG(QVariant, QVariant::fromValue(map)));

              I tried it again but this error is displayed

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

                Strange.. It works perfectly for me. Which Qt version and OS are you using ?

                157

                1 Reply Last reply
                0
                • B Offline
                  B Offline
                  beh_zad
                  wrote on last edited by
                  #16

                  It's storage for me too, Qt Creater 3.1.1 based on Qt 5.2.1

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

                    Can you RightClick on QMetaObject > Refactor > Add #Includes ... (any or all which it mentions) ?

                    157

                    1 Reply Last reply
                    0
                    • B Offline
                      B Offline
                      beh_zad
                      wrote on last edited by
                      #18

                      I had done it at least, it needs to include <QQuickItem>, thanks for everybody to replying my question.

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

                        Good... Happy Coding :)

                        157

                        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