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

Send QVariantList and QVariantMap to JavaScript Array and Object

Scheduled Pinned Locked Moved QML and Qt Quick
19 Posts 3 Posters 11.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