qml - 打开其他 QML 窗口时如何隐藏 QML 窗口

标签 qml qt5.3 qt5.4 qqmlcomponent

我需要在单击按钮时打开另一个 QML 窗口时隐藏 QML 窗口,我使用 Loader 打开另一个 QML 窗口,它只隐藏 QML 表单组件而不是 QML 窗口,但我目前使用窗口组件打开 QML 窗口

这是我的代码:

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") }

上面的代码仅在单击按钮时导航 QML 窗口,而我需要隐藏 QML 窗口。

最佳答案

当您隐藏主窗口时,我看不到任何代码。请阅读 this article因为你的代码没有说明这个问题。

这是主窗口在弹出窗口显示时隐藏的小例子。也许它对你有用。

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();
        }
    }
}

关于qml - 打开其他 QML 窗口时如何隐藏 QML 窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30271781/

相关文章:

facebook - 从 QtQuick 应用程序在 facebook 和 twitter 上分享图像

c++ - QImage,可以改变资源图片的背景(png/jpg)

qt - 混合 QtQuickControls 1 和 2

qt - 在矩形内包装 ListView

c++ - 为 QDockWidget 禁用分隔光标

c++ - 重置/清除 TabWidget 页面中的每个项目

c++ - Qt 5.4/Qml : Prevent binding loop

c++ - 使用 Qt/C++ 等到所有线程在主线程中完成

c++ - QML/C++ 问题中的 Unicode

c++ - QtConcurrent 在 reportResultsReady 上崩溃