Задать вопрос

QML vs Qt Widgets — что предпотительнее для реализации интерфейса?

Собираясь разрабатывать новое приложение (на C++ и Qt), столкнулся с выбором: как реализовать интерфейс — на QML или сделать по старинке виджетами (будет виджет, наследованный от QPainter на котором будут отрисовываться объекты да скроллироваться, и еще несколько виджетов с различными текстовыми полями и кнопками). С QML у меня нет никакого опыта, поэтому на виджетах я сделаю интерфейс намного быстрее. Однако, может быть у QML есть какие-то плюсы по сравнению с традиционными виджетами? Так какие же? Что из них производительнее?
  • Вопрос задан
  • 23206 просмотров
Подписаться 5 Оценить 2 комментария
Пригласить эксперта
Ответы на вопрос 3
Mezomish
@Mezomish
Насчёт производительности — разница только на старте, когда грузится и парсится QML. Далее на его основе создаются обычные «плюсовые» объекты в памяти, так что во время исполнения разницы не будет. А если ваш QML не супер-дупер навороченный, то вы и во время загрузки разницы не ощутите.
Плюсы у QML — более компактное, более читабельное описание интерфейса, а также тот факт, что тенденция развития Qt однозначно идёт к QML. В Qt5 вроде бы от нативных виджетов понемногу отходят (тут врать не буду, возможно неправ).
Ответ написан
silvansky
@silvansky
На QML сложные интерфейсы с анимацией и прочим писать куда быстрее, нежеи на виджетах. Плюс различные плюшки типа эффектов.

А виджет наследовать от QPainter — что-то очень странное Вы написали.
Ответ написан
nzeemin
@nzeemin
программист
Писал интерфейс на Qt, в последние дни как раз трогал QML.
Явно видна заточенность QML под мобильные платформы — при рисовании интерфейса как-то сам начинаешь думать в эту сторону.
QML стоит выбрать если хочется обеспечить одинаковый / подобный интерфейс для мобильной и десктопной версии приложения. Или же хочется сделать интерфейс сильно отличающийся от обычных программ. Например, для игрушек неплохо подойдёт.
Делать на QML сложные интерфейсы я бы не стал — возни много, а выхода мало.
Ответ написан
Ваш ответ на вопрос

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

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