How to hide a QML Window when opening a other QML Window
Asked Answered
I

1

6

I need to hide The QML Window when opening the another QML Window while clicking the button,I use Loader to open the another QML Window and its only hide the QML form components not QML Window,but I currently use window component to opens the QML Window

Here is my code :

Button {
        id: button2
        x: 19
        y: 54
        width: 114
        height: 25
        text: qsTr("DIFF-R")
        style: ButtonStyle {
            background: Rectangle {
                implicitWidth: 10
                implicitHeight: 25
                border.width: control.activeFocus ? 2 : 1
                border.color: "#555"
                radius: 10
                gradient: Gradient {
                    GradientStop { position: 0 ; color: control.pressed ? "#ddd" : "#fff" }
                    GradientStop { position: 1 ; color: control.pressed ? "#8ad993" : "#528dc8" }

                }
    }
}
        onClicked:{ 
                    /*pagesource.source="screen2.qml"
            button1.visible="false"
            button2.visible="false"
            text1.visible="false"
            text2.visible="false"
            text3.visible="false"
            text4.visible="false"
            textField1.visible="false"
            textField2.visible="false"
            textField3.visible="false"
            image1.visible="false"*/ 
            var component = Qt.createComponent("screen2.qml")
            var window    = component.createObject(root)
            window.show("screen2.qml") }

The above code only navigates the QML Window while the Button is clicked whereas I need to Hide the QML Window.

Insole answered 16/5, 2015 at 4:16 Comment(2)
What about Window.visible?Ditch
@Ditch If i use Window.visible="false", first time it works fine but afterward its can't works.Insole
D
4

I see no code when you hide main window. Please, read this article since your code say nothing about the problem.

This is small example when main window hides when popup shows. May be it can be useful for you.

Window {
    id: mainWindow
    title: "Main window"
    width: 600
    height: 600
    visible: true
    flags: Qt.Dialog
    modality: Qt.ApplicationModal

    Component {
        id:  popupWindow
        Window {
            title: "Popup window"
            width: 400
            height: 400
            visible: true
            flags: Qt.Dialog
            modality: Qt.ApplicationModal
            Text {
                anchors.centerIn: parent
                text: "Close me to show main window"
            }
        }
    }

    Button {
        anchors.centerIn: parent
        text: "Show popup window"
        onClicked: {
            var window = popupWindow.createObject(mainWindow);
            mainWindow.hide();
            conn.target = window;
        }
    }

    Connections {
        id: conn
        onVisibleChanged: {
            mainWindow.show();
        }
    }
}
Ditch answered 18/5, 2015 at 4:16 Comment(1)
i do coding for arm processors(raspberry). i can't support many window.Insole

© 2022 - 2024 — McMap. All rights reserved.