Сигнал QML для изменения ориентации завершен - PullRequest
0 голосов
/ 22 января 2019

Я работаю над приложением ESRI AppStudio (AppStudio 3.1, Qt 5.11) для iPad, и мне нужно изменить размер элемента управления QML при изменении ориентации. Я нашел эту страницу, которая, кажется, описывает официальный способ сделать это: https://wiki.qt.io/QML_orientation_observer

import QtQuick.Window 2.2
Rectangle {
    property bool isPortrait: Screen.primaryOrientation === Qt.PortraitOrientation || Screen.primaryOrientation === Qt.InvertedPortraitOrientation
    onIsPortraitChanged: console.log("isPortrait", isPortrait)
}

Однако на этой странице я обнаружил утверждение о том, что привязка будет запущена после того, как изменения высоты и ширины будут выполнены, чтобы быть неверными. Когда я реализовал это, я увидел, что onIsPortraitChanged действительно срабатывает при изменении ориентации, но это происходит до завершения анимации изменения ориентации и до изменения ширины приложения. Есть ли способ, которым я могу вызвать свой код после изменения ширины?

1 Ответ

0 голосов
/ 22 января 2019

Вот решение, которое я нашел, но оно будет работать только на устройствах, где приложение работает в полноэкранном режиме, и для этого может быть более чистый способ.

import QtQuick.Window 2.2
Window {
    id: app
    visible: true
    width: 640
    height: 480

    Rectangle {
        anchors.fill: parent
        onWidthChanged: {
            if(app.width === Screen.width || app.width === Screen.height) {
                //calculate new size
            }
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...