Russian Qt Forum
Ноябрь 23, 2024, 00:45 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: стандартные дизайнеры GUI для Qt и QML и смысл подхода с QML  (Прочитано 11333 раз)
биомашин
Гость
« : Май 14, 2011, 18:33 »

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

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

Сообщений: 3260


Просмотр профиля
« Ответ #1 : Май 14, 2011, 23:05 »

Креатор позволяет открывать ui файлы. Кнопка дизайнера загорается когда текущий файл - qml или ui
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #2 : Май 15, 2011, 10:33 »

>>то в QtCreator кнопка "Дизайнер" не работает
это, если не выделен соответсвующий файл в дереве проекта.
Если ui-файл дважды щёлкнишь, то откроется встроенный дизайнер.
Записан

Юра.
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #3 : Май 15, 2011, 10:34 »

>>затем все собирают вместе?
не понял, поясни
Записан

Юра.
биомашин
Гость
« Ответ #4 : Май 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.
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #5 : Май 16, 2011, 05:42 »

>>читал, вроде gui на qml можно разработать отдельно
всё равно не понял. ui-файл тоже можно создать отдельно.
Записан

Юра.
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #6 : Май 16, 2011, 05:44 »

>>Внешне же они разные совсем
да, там и идея разная, в QML произвольное "рисование", хотя дизайнер QML ещё очень кривой.
А в обычном дизайнере ты можешь использовать только типовые виджеты (если не учитывать плагины пользовательских виджетов)
Записан

Юра.
биомашин
Гость
« Ответ #7 : Май 16, 2011, 11:55 »

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

в QML произвольное "рисование"
Это как?
Записан
b-s-a
Гость
« Ответ #8 : Май 16, 2011, 13:53 »

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

ui - это такой xml файл, из которого на этапе компиляции проект генерируется файл *_ui.h, подключаемый тобой в коде...
Спасибо, полезно.

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


Страница сгенерирована за 0.129 секунд. Запросов: 23.