QQuickView - изменить размер содержимого без задержки / задержки - PullRequest
2 голосов
/ 30 апреля 2019

Изображение часто является самым простым способом объяснить что-то, вот небольшой скриншот проблемы, с которой я столкнулся:

laggy resize

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

В основном мое приложение создано так:

QQuickView view;
view.resize(400, 200);
view.setResizeMode(QQuickView::ResizeMode::SizeRootObjectToView);
view.setSource(...);

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

Редактировать : здесь представлена ​​упрощенная версия файла QML (да,упрощенная версия также страдает от той же проблемы; p)

import QtQuick 2.12
Item {
    Rectangle {
        color: "black"
        anchors { fill: parent; margins: 10 }
    }
}

Edit2 : при запуске этого небольшого фрагмента QML через исполняемый файл qmlscene также отображается та же задержка / задержка.

Edit3 : та же проблема возникает в некоторых дистрибутивах Linux, но не в некоторых других: на моем Ubuntu он работает нормально, но на моем CentOS 7 он показывает те же задержки / глюки, что и в Windows.Обе версии Qt были 5.12.3.На старой OSX все работает нормально (проверено на Qt 5.9) Я действительно потерян сейчас ^^

Есть ли способ предотвратить такую ​​задержку?Решение, вероятно, будет зависеть от платформы, так как кажется, что проблема заключается в том, что размер исходного кадра изменяется до того, как Qt сможет получить событие, и поэтому размер содержимого изменяется с задержкой в ​​1 кадр ... но я быХотелось бы узнать, есть ли у кого-нибудь идеи о том, как с этим справиться?

Любая помощь или указатель приветствуются:)

С уважением, Дэмиен

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