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

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

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

Что же выбрать? Можно ли улучшить производительность проекта на Qt Quick?
  • Вопрос задан
  • 1494 просмотра
Пригласить эксперта
Ответы на вопрос 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 будет удобнее.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы