Неверное значение размера экрана - PullRequest
0 голосов
/ 25 марта 2020

Я создал тестовое приложение QML, чтобы показать размер экрана.

Он тестировался на Xiaomi Redmi 6. Разрешение экрана устройства составляет 720 x 1440 пикселей.

У меня 360 x 696. Любые идеи ?

Windows 7 64 бит, Qt 5.14.1, jdk1.8.0_241.

main.qml:

import QtQuick 2.12
import QtQuick.Window 2.12

Window {
    visible: true
    width: 720
    height: 1440
    title: qsTr("Hello World")

    Column {
        anchors.centerIn: parent

        Text {
            text: "Screen.width: " + Screen.width
            color: "lightsteelblue"
        }

        Text {
            text: "Screen.height: " + Screen.height
            color: "lightsteelblue"
        }
    }

    MouseArea {
        anchors.fill: parent
        onClicked: {
            // ScreenSize == QGuiApplication::primaryScreen()->size()
            console.log( ScreenSize.height, ScreenSize.width);
        }
    }

}

консольный вывод:

D libTest2_armeabi-v7a.so: qml: 696 360

Screenshot

1 Ответ

0 голосов
/ 26 марта 2020

Я сделал так: DPI Awareness . Этот ответ помог мне.

int main(int argc, char *argv[])
{
    argc = 3;
    argv[0] = (char*)"Appname";
    argv[1] = (char*)"--platform";
    argv[2] = (char*)"android:dpiawareness=0";

    QGuiApplication app(argc, argv);
    ...
}

Я изменил "windows" на "android". Теперь это работает правильно. Хотя эта функция не предназначена для android. После удаления я добавляю строку кода, и она все равно работает правильно. Приложение работает хорошо в исходном состоянии. Что-то переключилось в Qt.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...