LINUX.ORG.RU
ФорумTalks

Qt3 designer vs. Qt4 designer


0

0

Почему в дизайнере для Qt3 есть автоматическая генерация всяких исходных файлов, а в дизайнере для Qt4 нет? Вроде и документацию читал - сказано, пишите, мол, руками. Может я ошибаюсь? А то предложил нашему программисту, который разрабатывает графические тулзы для управления железками под винду писать их на Qt, хотел показать ему, как писать, сам за 10 минут в Qt3 накидал формочку, сгенерил прожект, скомпилял и запустил. А вот в дизайнере Qt4 пришлось руками писать много чего, что в третьем делалось автоматически.

Помогите, не хотелось бы облажаться :)


возможно есть смысл проинтегрировать Qt4 в Visual Studio, если ей привык пользоваться программист. там будет автоматически генерироваться файло, просто кидаешь на формочку виджеты и фпирёт.

psy-janizary
()
Ответ на: комментарий от Zmacs

Возможно, посмотри на сайте Троллей. с VS точно можно интегрировать, это коммерчиски выгодный шаг для разработчиков. О том, КАК интегрировать написано на http://prog.org.ru/forum/forum_14 ... там же ссылки на интеграторы и прочее.

psy-janizary
()

Есть там точно такая же автоматическая генерация исходников.
$ uic blabla.ui -o ui_blabla.h
Из qt4-дезигнера выкинули разве что автоматическую "вызывалку" вот этой строчки и встроенный текстовый редактор. И правильно.
В проектах/макефайлах генерируемых qmake такая строчка для каждого ui файла добавляется автоматически.
Или имелось в виду нечто другое?

Deleted
()
Ответ на: комментарий от Deleted

Ну в qt3 ещё было такое: "тыкнешь куда-то, там окошко вылетает, а в нём код писать можно для этого обработчика". В qt4 designer оно есть?

Zmacs
() автор топика

В дизайнере Qt4 изменился подход к генерации кода. Теперь они используют шаблон проектирования Generation Gap (http://www.research.ibm.com/designpatterns/pubs/gg.html). Если кратко - теперь дизайнер генерирует только ту часть кода, которая определяет внешний вид виджета/диалога/etc. Функциональное наполнение ты делаешь уже сам. В результате такого подхода, внешний вид и "наполнение" кода функциями становятся в определённой мере "развязанными". За деталями - по сцылко...

Sectoid ★★★★★
()
Ответ на: комментарий от Zmacs

Такого нету и хорошо. Ибо написанный таким образом код оказывался в .h файле (маразм), а сам дезигнер превращался почти в ide (убогонькое). Теперь надо наследовать или агрегировать автоматически сгенерированный класс, типа интерфейс - отдельно, логика - отдельно.

Deleted
()

У них парадигма поменялась. Теперь они делают дизайнер как элемент, встраиваемый в уже существующие IDE - MSVS, Eclipse и пр. Своего компайлера у них всё равно нет - так зачем городить огород из code editor'ов и пр.? Пущай люди работают в привычной им среде типа.

anonymous
()
Ответ на: комментарий от anonymous

Самое главное преимущество генератора кода Qt4 по сравнению с Qt3 - то что он развязывает логику и внешний вид по отдельным файлам. UIC генерирует только внешний вид. Исчез кривой метод не просто навязать Дизайнеру роль редактора, а ещё и попытки его лезть править твой собственный код. А чтобы облегчить программисту задачу связывания сигналов обьектов с методами - введён новый механизм автоматического связывания:

void MyClass::on_myButton_clicked() { // do something }

Такой слот будет подключён к сигналу clicked() обьекта myButton автоматически, не нужно писать лишний

QObject::connect( ui.myButton, SIGNAL(clicked()), SLOT(on_myButton_clicked()) );

Dendy ★★★★★
()
Ответ на: комментарий от psy-janizary

А вижуалку на форуме linux.org видимо предлагают под wine'ом запускать )))

А kdevelop последний - 3.4.x и правда умеет работать с qt4. в предыдущих - всё больше костыли.

anonymous
()
Ответ на: комментарий от Dendy

> введён новый механизм автоматического связывания:

> void MyClass::on_myButton_clicked() { // do something }

О! За это спасибо! Буду знать

Zmacs
() автор топика
Ответ на: комментарий от anonymous

> А kdevelop последний - 3.4.x и правда умеет работать с qt4. в предыдущих - всё больше костыли.

А как его нормально заставить работать? У меня то 2 раза дизайнер запускается, то говорит, что надо сконвертить интерфейс из версии 3 в 4. В общем, можешь дать ссылку какую-нить про это дело?

Zmacs
() автор топика
Ответ на: комментарий от anonymous

есть еще кроссплатформенный QDevelop, только там зачаточно все, в т.ч. и и интеграция

Syncro ★★★★★
()
Ответ на: комментарий от anonymous

> А вижуалку на форуме linux.org видимо предлагают под wine'ом запускать )))

Дык, программер-то под венду.

psy-janizary
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.