完成后销毁QT QML窗口

时间:2018-12-08 15:37:26

标签: qt qml qtquick2 qtwebengine qtquickcontrols

QT QML的新手,很抱歉,这只是一个简单的问题。

我有简单的代码来演示WebEngine Qt Quick示例。

/* runtime.qml*/
import QtQuick 2.1
import QtQuick.Controls 1.1
import QtWebEngine 1.1

ApplicationWindow {
    width: 1080
    height: 1488
    visible: true
    flags: Qt.WindowFullScreen | Qt.FramelessWindowHint
    WebEngineView {
            url: "http://www.qt.io"
            anchors.fill: parent
    }
}

它只会显示一个网页,并由以下脚本调用:

#!/bin/sh
exec /usr/bin/qt5/qmlscene "$1" runtime.qml

点击放置在“其他窗口”上的小部件时触发该脚本

现在,我希望当有人返回触发脚本的“其他窗口”时,销毁runtime.qml创建的表面。

2 个答案:

答案 0 :(得分:1)

Qt.quit()将达到目的:

MouseArea{
                  anchors.fill: parent
                  onClicked: {
                         Qt.quit()
                  }
         }

您的问题还不够清楚,您可能还需要一个Timer,您是在运行时.qml还是加载时使用Loader
 或者不使用窗口,而是要查看可以打开或关闭的Popup

答案 1 :(得分:0)

您可以使用关闭按钮关闭窗口,如下所示:

    Image {
        id: quitButton
        width: 50
        height: 50
        fillMode: Image.PreserveAspectFit
        source: mouseAreaQuitButton.containsMouse ?
                    "../images/titleBar/quit_hover.png" :
                    "../images/titleBar/quit.png"
        MouseArea {
            id: mouseAreaQuitButton
            anchors.fill: parent
            hoverEnabled: true
            onClicked: Qt.quit()
        }
    }