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. How to create and show new QML,in Android
Qt 6.11 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.6k 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 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 Extensions
                      • Unsolved