Russian Qt Forum

Qt => Qt-инструментарий => Тема начата: биомашин от Май 14, 2011, 18:33



Название: стандартные дизайнеры GUI для Qt и QML и смысл подхода с QML
Отправлено: биомашин от Май 14, 2011, 18:33
Раньше только с с++ билдером работал. Поэтому в таких масштабных вещах, как Qt, не разбираюсь. Отсюда глупые вопросы:
Установил SDK 1.1. Если создаю десктопный проект Qt, то в QtCreator кнопка "Дизайнер" не работает. Доступ к гуи - через файл .ui, который открывается в QtDesigner. Если создаю проект QML, то доступ к кнопке "Дизайнер" есть. Получается, в "стандартных" Qt-проектах гуи делается через QtDesigner (а сам гуи похож на xml-файл), а в QML-проектах гуи делается через сам QtCreator (т.к. ничего не подгружалось при щелчке на кнопку "Дизайнер")?

Смысл xaml, mxml, qml мне не понятен. Сценарий в билдере: создавал-связывал формы, добавлял на формы компоненты, двойным щелчком открывал их и писал обработчик. Преимущество сегодняшнего разделения? Дизайнер делает интерфейс отдельно, программист пишет обработчики-логику отдельно, затем все собирают вместе? 


Название: Re: стандартные дизайнеры GUI для Qt и QML и смысл подхода с QML
Отправлено: Авварон от Май 14, 2011, 23:05
Креатор позволяет открывать ui файлы. Кнопка дизайнера загорается когда текущий файл - qml или ui


Название: Re: стандартные дизайнеры GUI для Qt и QML и смысл подхода с QML
Отправлено: lit-uriy от Май 15, 2011, 10:33
>>то в QtCreator кнопка "Дизайнер" не работает
это, если не выделен соответсвующий файл в дереве проекта.
Если ui-файл дважды щёлкнишь, то откроется встроенный дизайнер.


Название: Re: стандартные дизайнеры GUI для Qt и QML и смысл подхода с QML
Отправлено: lit-uriy от Май 15, 2011, 10:34
>>затем все собирают вместе?
не понял, поясни


Название: Re: стандартные дизайнеры GUI для Qt и QML и смысл подхода с QML
Отправлено: биомашин от Май 15, 2011, 19:39
Если ui-файл дважды щёлкнишь, то откроется встроенный дизайнер.
Да, я про это. В \bin QtCreator-а лежат assistant.exe, designer.exe, linguist.exe и сам qtcreator.exe. Qt-проект: для создания gui по кнопке "Дезайнер" вызывается designer.exe. QML-проект: для создания gui тоже используется designer.exe? Внешне же они разные совсем.
 
>>затем все собирают вместе?
не понял, поясни
Читал, вроде gui на qml можно разработать отдельно, а затем подгрузить в creator.


Название: Re: стандартные дизайнеры GUI для Qt и QML и смысл подхода с QML
Отправлено: lit-uriy от Май 16, 2011, 05:42
>>читал, вроде gui на qml можно разработать отдельно
всё равно не понял. ui-файл тоже можно создать отдельно.


Название: Re: стандартные дизайнеры GUI для Qt и QML и смысл подхода с QML
Отправлено: lit-uriy от Май 16, 2011, 05:44
>>Внешне же они разные совсем
да, там и идея разная, в QML произвольное "рисование", хотя дизайнер QML ещё очень кривой.
А в обычном дизайнере ты можешь использовать только типовые виджеты (если не учитывать плагины пользовательских виджетов)


Название: Re: стандартные дизайнеры GUI для Qt и QML и смысл подхода с QML
Отправлено: биомашин от Май 16, 2011, 11:55
ui-файл тоже можно создать отдельно.
Думал, это фишка только если делаешь gui на QML.
QtDesigner. В чем тогда смысл qml? Создал для примера проекты на qt и qml. Что там, что там визуально перетаскиваю на форму компоненты, могу менять их свойства, растягивать (правда в qml-дизайнере компоненты на форме отображаются пустыми контурами). Разница только в коде, который генерируется - у qml он понятный, у qt (xml) - нет. Неужели эта "понятность" дает такой большой профит? Или дело не только в этом?

в QML произвольное "рисование"
Это как?


Название: Re: стандартные дизайнеры GUI для Qt и QML и смысл подхода с QML
Отправлено: b-s-a от Май 16, 2011, 13:53
Разница только в коде, который генерируется - у qml он понятный, у qt (xml) - нет. Неужели эта "понятность" дает такой большой профит? Или дело не только в этом?
QML был введен не так давно. Поэтому народ еще не умеет с ним работать. Но, судя по всему, будущее Qt его разработчики (Nokia) видят именно в QML.
ui - это такой xml файл, из которого на этапе компиляции проект генерируется файл *_ui.h, подключаемый тобой в коде. В этом файле находится класс-контейнер и метод, необходимые для создания нарисованной тобой формы. В результате, скорость создания интерфейса при запуске программы ничуть не меньше, чем если бы ты его создавал руками.
qml - это что-то вроде фреймворка. Думаю, не сильно совру, если скажу, что это больше похоже на Adobe Flash или Microsoft Silverlight, чем на C++.


Название: Re: стандартные дизайнеры GUI для Qt и QML и смысл подхода с QML
Отправлено: биомашин от Май 16, 2011, 19:08
ui - это такой xml файл, из которого на этапе компиляции проект генерируется файл *_ui.h, подключаемый тобой в коде...
Спасибо, полезно.

qml - это что-то вроде фреймворка. Думаю, не сильно совру, если скажу, что это больше похоже на Adobe Flash или Microsoft Silverlight, чем на C++.
Ага, читал, что в Qt пошли по такому же пути. Сейчас нашел описание процесса разработки "больших" программ. Чтобы удобно было реализовывать сценарии взаимодействия с пользователем, а не прикладывать к прототипу текстовое описание. Но что там с рисованием? Это как во флеше: нарисовал кнопку, преобразовал в символ (связал с классом кнопки) и можно использовать в коде? В QML-дизайнере такой возможности не заметил.