Как растянуть приложение на весь экран на Android?

Пишу приложение на QT 5.9 в режиме киоска. Оно должно работать развернутым на весь дисплей. Развернуть на весь дисплей получилось:
QGuiApplication app(argc, argv);
    QQmlApplicationEngine engine;
    const QUrl url(QStringLiteral("qrc:/interface/main.qml"));
    QObject::connect(&engine, &QQmlApplicationEngine::objectCreated,
                     &app, [url](QObject *obj, const QUrl &objUrl) {
        if (!obj && url == objUrl)
            QCoreApplication::exit(-1);
    }, Qt::QueuedConnection);

    engine.load(url);
    #if defined(Q_OS_ANDROID)
        QQuickWindow *window = qobject_cast<QQuickWindow *>(engine.rootObjects().first());
        window->showFullScreen();
    #endif


но остается одно НО. Разрешение дисплея устройства 600 на 1024. Приложение сначала запускается с видимой панелью кнопок назад, домой, свернуть. Далее включается режим киоска и они исчезают. Изображение растягивается на весь экран, но круглые кнопки уже не остаются круглыми, а станоятся овальными. В логах при запуске вижу такую строку:
DisplayManager( 2083): getDisplayInfo: displayId=0, info=DisplayInfo{"Встроенный экран", uniqueId "local:0", app 600 x 976, real 600 x 1024, largest app 1024 x 951, smallest app 600 x 527, 69.6 fps, supportedRefreshRates [69.6], rotation 3, density 160 (159.5681 x 160.42105) dpi, layerStack 0, appVsyncOff 0, presDeadline 15367816, type BUILT_IN, state ON, FLAG_SECURE, FLAG_SUPPORTS_PROTECTED_BUFFERS}


Т.е. прямоугольник 600х976 растянулся на 600х1024 как бы это сказать без уведомления приложения, т.е. оно думает что оно 600х976, тогда как его растянули на 600х1024, сделав задуманную разработчиком круглость овальностью. Куда копать в данном случае. Не нахожу похожих тем.
  • Вопрос задан
  • 1602 просмотра
Решения вопроса 1
@sunnmas Автор вопроса
Ruby
Рассмотрение под микроскопом экрана устройства и подсчет в пикселах элементов интерфейса показало неквадратность пиксела на экране.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Zifix
@Zifix Куратор тега Qt
Barbatum
Во-первых, надо попробовать в манифесте прописать полноэкранный режим.

Во-вторых, зачем вы вытаскиваете из движка кишки в С++, когда в QML есть красивое свойство на этот случай?

В третьих, расскажите, как именно вы включаете режим киоска.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы