Минимизация основного окна из кода QML не имеет никакого эффекта - PullRequest
0 голосов
/ 30 октября 2019

У меня полноэкранное приложение QML, похожее на это:

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    QQmlApplicationEngine engine;
    engine.load("main.qml");

    // Publish QmlApplication object to QML
    engine.rootContext()->setContextProperty("QmlApplication", QApplication::activeWindow());
    return app.exec();    
}

Таким образом, рамка окна и кнопки мин / макс не видны. Поэтому у меня есть источник QML с кнопкой, где я пытаюсь свернуть приложение:

import QtQuick 2.12

Item {
    id:screen
    ...
    Button {
        id: minimizeButton
        onClicked: {
            console.log("QmlApplication.isMinimized(): " + QmlApplication.minimized);
            QmlApplication.showMinimized();
        }
    ...
    }
}

Однако окно сворачивается только один раз:

  1. С первой попытки console.log печатает:

    qml: QmlApplication.isMinimized (): false

    и QmlApplication.showMinimized() сворачивает окно.

  2. Однакопосле восстановления приложения по DE журнал консоли показывает:

    qml: QmlApplication.isMinimized (): true

    и QmlApplication.showMinimized() не действуют.

Как исправить? Почему minimized флаг остается true?

...