Уничтожьте окна QT QML, как только это будет сделано - PullRequest
0 голосов
/ 08 декабря 2018

Новичок в 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 голосов
/ 12 декабря 2018

Вы можете использовать кнопку закрытия, чтобы закрыть окно, например:

    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()
        }
    }
0 голосов
/ 12 декабря 2018

Qt.quit() поможет:

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

Ваш вопрос недостаточно ясен, вам может понадобиться и Timer, вы используете Loader для runtime.qml или загружаете его?
или вместо использования окон вы можете посмотреть Всплывающее окно , которое можно открывать или закрывать.

...