QML vs QWidget's, поясните технологию, рисование? что производительнее? |
Здравствуйте, гость ( Вход | Регистрация )
QML vs QWidget's, поясните технологию, рисование? что производительнее? |
I_Wanna_Know |
12.9.2014, 19:47
Сообщение
#1
|
Студент Группа: Участник Сообщений: 20 Регистрация: 28.8.2014 Пользователь №: 4213 Спасибо сказали: 0 раз(а) Репутация: 0 |
Доброго времени суток Комрады!
прошу не пинайте меня - ленивую сволочь за то, что не сильно гуглил эту тему :-) Просто хочется услышать мнение живых людей по сабжу: Собсно сабж в том, что прошёл слушок, мол в Qt5 нужно слезать с QWidget's и переходить на QML т.к. в будущем по заверениям будет развиваться именно QML Поэтому прошу пожалуйста проясните ситуацию:
Вообщем хочется знать нахрена весь этот сыр бор затеян с этим QML , чем их не устраивал QWidget? |
|
|
I_Wanna_Know |
17.9.2014, 12:06
Сообщение
#2
|
Студент Группа: Участник Сообщений: 20 Регистрация: 28.8.2014 Пользователь №: 4213 Спасибо сказали: 0 раз(а) Репутация: 0 |
marsel большое спасибо за развёрнутый ответ
Что предоставляет больше функционала? то же обнаружение коллизий \ отслеживания изменения координат ну и т.п. Честно не до конца понял, что имеется в виду. Я имею в виду методы для работы с графическими примитивами например: скалирование, трансформация( в том числе и Rotate() ) или вот конкретная функция для обнаружения коллизий(столкновений между графическими примитивами) http://www.doc.crossplatform.ru/qt/4.4.3/q...ollidesWithItem Т.е. вот например хочу я написать на C++ классическую игру "жизнь", где нужно отрисовывать большое количество графических объектов движущихся по сложному алгоритму, что мне лучше использовать? QML или QWidgets при условии того, что я хочу хорошую производительность и отсутствие геморроя при написании GUI? |
|
|
exio |
31.10.2014, 15:23
Сообщение
#3
|
Новичок Группа: Новичок Сообщений: 1 Регистрация: 31.10.2014 Пользователь №: 4265 Спасибо сказали: 0 раз(а) Репутация: 0 |
marsel большое спасибо за развёрнутый ответ Что предоставляет больше функционала? то же обнаружение коллизий \ отслеживания изменения координат ну и т.п. Честно не до конца понял, что имеется в виду. Я имею в виду методы для работы с графическими примитивами например: скалирование, трансформация( в том числе и Rotate() ) или вот конкретная функция для обнаружения коллизий(столкновений между графическими примитивами) http://www.doc.crossplatform.ru/qt/4.4.3/q...ollidesWithItem Т.е. вот например хочу я написать на C++ классическую игру "жизнь", где нужно отрисовывать большое количество графических объектов движущихся по сложному алгоритму, что мне лучше использовать? QML или QWidgets при условии того, что я хочу хорошую производительность и отсутствие геморроя при написании GUI? Я использовал по долгу службы QML в электронном учебнике. По производительности QML скажу так: 1)QML - это прекрасный инструмент для быстрого написания форм любого вида. Каким бы сложным и нестандартным не был дизайн интерфейса, Вы сможете быстро реализовать его при помощи QML. После первичной компиляции QML файла, форма будет работать быстро. 2)В QML удобно реализовывать списки. Вам не нужно писать кучу кода для того, чтобы нарисовать красивые элементы списка. 3)QML не предназначен для работы с большим количеством примитивов. Тысячи item ов это для него большая проблема, т.к. тратится время и на отрисовку и на работу сигнально-слотовой системы. Чтобы вывести для примера тысячу анимированных смайлов, придется использовать сторонний 3д движок и оборачивать его вывод в отдельный Item, тогда все будет ок. 4)среда QML - это не хранилище данных. Если в js запихать большой массив с данными, то все будет жутко тормозить. В среду QML желательно подтягивать только то, что необходимо здесь и сейчас. Опишу одну из реальных проблем, с которой столкнулись. Нужно было сделать кастомную клавиатуру для андроид приложения. Написали все на QML без использования плюсового кода. Как дело дошло до профилирования и поиска узких мест выяснилось, что эта клавиатура кушает 500 мс на первичную загрузку. Писать на с++ свой элемент не захотел. Сделал отложенную загрузку клавы, чтобы сэкономить пол секунды на первичную загрузку приложения. |
|
|
Текстовая версия | Сейчас: 25.11.2024, 18:00 |