Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. QML and Qt Quick
  4. How to create and show new QML,in Android
Qt 6.12 LTS is out! See what's new in the release blog

How to create and show new QML,in Android

Scheduled Pinned Locked Moved Unsolved QML and Qt Quick
12 Posts 3 Posters 7.7k Views 2 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
    #2

    @THEFree Please elaborate your question.

    157

    T 1 Reply Last reply
    0
    • p3c0P p3c0

      @THEFree Please elaborate your question.

      T Offline
      T Offline
      THEFree
      wrote on last edited by
      #3

      @p3c0 main.qml 's button Click on a button to open a new window

      open this “QML”

      import QtQuick 2.5
      import QtQuick.Controls 2.0
      import QtQuick.Window 2.0
      
      Rectangle {
          id:circleFriends
      
      
          Rectangle{
              height: Screen.height
              width: Screen.width
      //        x:circleFriends.width
      
      //        PropertyAnimation on x{
      //            to:0; duration:1000;loops:Animation.Infinite
      //        }
          }
      
      }
      
      1 Reply Last reply
      0
      • p3c0P Offline
        p3c0P Offline
        p3c0
        Moderators
        wrote on last edited by
        #4

        @THEFree
        Following can be done for dynamic object creation and loading:

        • Qt.createComponent() or Qt.createQmlObject()
          Check this document for more info.
        • Loader

        If you want separate windows you will need to use Window as root object.

        157

        T 1 Reply Last reply
        0
        • S Offline
          S Offline
          stcorp
          wrote on last edited by
          #5

          Maybe you could try using a stackview? http://doc.qt.io/qt-5/qml-qtquick-controls2-stackview.html

          main.qml

          import QtQuick 2.7
          import QtQuick.Controls 2.0
          
          ApplicationWindow {
              visible: true
              width: 500
              height: 500
          
              StackView
              {
                  id: stackview
                  initialItem:
                      Pane
                      {
                          Button
                          {
                              text: "Open window"
                              onClicked: stackview.push("qrc:/window.qml")
                          }
                      }
              }
          }
          

          window.qml

          import QtQuick 2.0
          import QtQuick.Controls 2.0
          
          Pane {
              Column
              {
                  Button
                  {
                      text: "Close"
                      onClicked: stackview.pop()
                  }
                  Label
                  {
                      text: "This is an opened window"
                  }
              }
          }
          
          1 Reply Last reply
          0
          • p3c0P p3c0

            @THEFree
            Following can be done for dynamic object creation and loading:

            • Qt.createComponent() or Qt.createQmlObject()
              Check this document for more info.
            • Loader

            If you want separate windows you will need to use Window as root object.

            T Offline
            T Offline
            THEFree
            wrote on last edited by
            #6

            @p3c0

            main.qml open other.qml, I think it should be open。

            Because main.qml can't click,But other.qml can't see, If I click back, mail.qml can click

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

              @THEFree

              Because main.qml can't click

              Why it doesn't ? Can you post the code ?

              157

              T 1 Reply Last reply
              0
              • p3c0P p3c0

                @THEFree

                Because main.qml can't click

                Why it doesn't ? Can you post the code ?

                T Offline
                T Offline
                THEFree
                wrote on last edited by
                #8

                @p3c0

                mail.qml

                var component;
                var sprite;
                
                function createSpriteObjects() {
                    component = Qt.createComponent("qml/CircleFriends.qml");
                    if (component.status == Component.Ready)
                        finishCreation();
                    else
                        component.statusChanged.connect(finishCreation);
                }
                
                function finishCreation() {
                    if (component.status == Component.Ready) {
                        sprite = component.createObject(mainWindow, {"x": 0, "y": 0});
                        if (sprite == null) {
                            // Error Handling
                            console.log("Error creating object");
                        }
                    } else if (component.status == Component.Error) {
                        // Error Handling
                        console.log("Error loading component:", component.errorString());
                    }
                }
                
                

                other.qml

                import QtQuick 2.5
                import QtQuick.Controls 2.0
                import QtQuick.Window 2.0
                
                ApplicationWindow {
                    id:circleFriends
                    height: Screen.height
                    width: Screen.width
                    visible: true
                
                    Rectangle{
                          anchors.fill: parent
                //        x:circleFriends.width
                
                //        PropertyAnimation on x{
                //            to:0; duration:1000;loops:Animation.Infinite
                //        }
                    }
                
                }
                
                

                PC is ok,android is nothing

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

                  @THEFree Sorry but I don't see any connection between the 2 QML's. I dont see how you load other.qml in main.qml and also anything related to click.

                  157

                  T 1 Reply Last reply
                  0
                  • p3c0P p3c0

                    @THEFree Sorry but I don't see any connection between the 2 QML's. I dont see how you load other.qml in main.qml and also anything related to click.

                    T Offline
                    T Offline
                    THEFree
                    wrote on last edited by
                    #10

                    @p3c0 createSpriteObjects()

                    The pop-up window is transparent in android

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

                      @THEFree I think the problem is with multiple windows. I guess android doesn't support it.

                      157

                      T 1 Reply Last reply
                      0
                      • p3c0P p3c0

                        @THEFree I think the problem is with multiple windows. I guess android doesn't support it.

                        T Offline
                        T Offline
                        THEFree
                        wrote on last edited by
                        #12

                        @p3c0 use StackView is ok,Thank God, thank you

                        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
                        • Unsolved