История изменений
Исправление
equeim,
(текущая версия)
:
uic по сути решает другие задачи, нежели QML. Он позволяет поределить иерархию, расположение контролов относительно друг друга, их внешний вид и т.п. Но он не позволяет определить логику взаимодействия контролов друг с другом - а это тоже немалая часть создания интерфейса. Эту логику приходилось писать на C++. А разработчики QML хотели упростить написание интерфейсной логики, перевести ее на другой язык, чтобы интерфейсы могли писать и те, кто плохо знает C++. В случае варианта с кодогенерацией всю эту логику пришлось бы транслировать в C++, что создало бы дополнительные сложности. А JS многим знаком, и для внутриQMLной логики решено было использовать именно его. Т.е. интерфейс мы пишем на QML + JS, а бэкенд на C++.
А насчет тормозов - я такого не заметил (если все делать грамотно). Основные претензии у к QML у меня это JS (можно было бы использовать более строгий язык, хоть даже свой собственный) и непригодность Qt Quick для написания десктопных интерфейсов.
Исправление
equeim,
:
uic по сути решает другие задачи, нежели QML. Он позволяет поределить иерархию, расположение контролов относительно друг друга, их внешний вид и т.п. Но он не позволяет определить логику взаимодействия контролов друг с другом - а это тоже немалая часть создания интерфейса. Эту логику приходилось писать на C++. А разработчики QML хотели упростить написание интерфейсной логики, перевести ее на другой язык, чтобы интерфейсы могли писать и те, кто плохо знает C++. В случае варианта с кодогенерацией всю эту логику пришлось бы транслировать в C++, что создало бы дополнительные сложности. А JS многим знаком, и для внутриQMLной логики решено было использовать именно его. Т.е. интерфейс мы пишем на QML + JS, а бэкенд на C++.
Исходная версия
equeim,
:
uic по сути решает другие задачи, нежели QML. Он позволяет поределить иерархию, расположение контролов относительно друг друга, их внешний вид и т.п. Но он не позволяет определить логику взаимодействия контролов друг с другом - а это тоже немалая часть создания интерфейса. Эту логику приходилось писать на C++. А разработчики QML хотели упростить написание интерфейсной логики, перевести ее на другой язык, чтобы интерфейсы могли писать и те, кто плохо знает C++. В случае варианта с кодогенерацией всю эту логику пришлось бы транслировать в C++, что создало бы дополнительные сложности. А JS многим знаком, и для внутриQMLной логики решено было использовать именно его.