Как увеличить производительность Qt Quick и QML?

Здравствуйте. Выбираю, какую технологию использовать при написании кроссплатформенного десктопного приложения. Выбор пал на Qt, но не знаю, что использовать - Qt Widgets или Qt Quick.

Qt Widgets. Плюсы: отличная скорость запуска и работы. Минусы: начинающая устаревать технология, неудобный формат.
Qt Quick. Плюсы: достаточно новая технология, просто замечательный формат QML, его хочется использовать. Минусы: медленная скорость запуска и такая же перерисовка окна. Запуск пустого проекта и попытка изменить размер окна делает моим глазам больно.

Что же выбрать? Можно ли улучшить производительность проекта на Qt Quick?
  • Вопрос задан
  • 1680 просмотров
Пригласить эксперта
Ответы на вопрос 2
Zifix
@Zifix Куратор тега Qt
Barbatum
Можно увеличить скорость запуска покупкой платной версии с компилятором у Digia. С перерисовкой проблем не видел, может быть вопрос в вашем видеодрайвере/окружении?

Вообще выбор зависит от задач и типа приложения, потому область применения Widgets с Quick пересекается на самом деле не так уж сильно.
Ответ написан
@abukirev
C++/Qt developer/Tech Lead
Улучшить производительность проекта на Qt Quick / QML можно. Единый рецепт улучшения дать сложно, т.к. это зависит от многих факторов, которые не ясны из вопроса. Начиная от окружения и решаемой задачи, так и версии Qt. Некоторые из старых проблем производительности QML в Qt уже решены и советы по ним будут не актуальны.
Общие советы:
- не перегружать QML логикой (QML отвечает только за представление, все остальное надо делать в С++)
- не использовать тяжеловесные картинки(мегабайтная картинка будет тормозить) и некорректный размер (будут уходить ресурсы на пересчет)
- не использовать большого пересечения разных цветных областей (лучше положить готовую картинку, нежели отрисовывать ее слоями с разной прозрачностью, градиентами и т.д.)
- ....

Например вот так делать не надо - конечно будут проблемы на старте.

медленная скорость запуска и такая же перерисовка окна.

На какой системе и с какими параметрами происходит запуск? Честно говоря выглядит странно, т.к. QML нормально отрабатывает и на мобильных устройствах и на embeded, а тут так понимаю desktop...

Выбираю, какую технологию использовать при написании кроссплатформенного десктопного приложения. Выбор пал на Qt, но не знаю, что использовать - Qt Widgets или Qt Quick

Если нужны стандартные десктопные приложения со стандартными элементами, то Qt Widget будет удобнее.
Ответ написан
Ваш ответ на вопрос

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

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