LINUX.ORG.RU

[Qt] Код vs Designer

 


0

0

Как лучше создавать интерфейс Qt писать код руками или использовать designer/qtcreator?
Скажем если лучше писать код руками то как это грамотнее сделать писать отдельный класс для когда и уже его подключать/наследовать в основной класс
(MyWidgetDesigner.{cpp,h} - код формы, MyWidget.{cpp,h} - основной код куда куда подрубает нашу форму) Или прям мешать основной код и код формы в одном файле/классе.


дизайнер, если интерфейс не меняется динамически и дизайнера хватает

gavv
()

1. Если тебе нужно написать форму с полем ввода и одной кнопкой — то руками, если с двадцатью пятью кнопками, таблицей и крутилками — то дезигнер.

2. Если у тебя форма для отображения результатов работы или для ввода параметров, которые будут влиять на работу в другом месте, то дезигнер, отдельный класс (он сам его создаст). Если у тебя, грубо говоря, интерактивная игрушка, в которой ты ходишь по лабиринту, то руками, много разных классов, наследование/отдельные классы по необходимости.

вот как-то так.

name_no ★★
()

Зависит от предпочтения. Я вот руками пишу, мне не нравится тыкать кнопочки в дезигнере, расставлять названия и прочее, в коде как-то проще. Но это кому как.

В любом случае, при динамической работе с виджетами, придётся знать все нюансы расположения их, и писать руками.

Поэтому начинающим стоит писать код без дезигнера, а уж когда освоятся и поймут основные принципы расположения виджетов в кути, то можно и дизигнер

anonymous
()

Дизайнер позволяет на 100% заменить определённые куски кода, которые сложно писать и поддерживать на C++. Сюда входит:

1. Контейнер со списком указателей на виджеты и лейоуты.
2. Статическое размещение виджетов на форме.
3. Предустановленые соединения сигналов со слотами в пределах этой формы + возможность избежать явных соединений при создании этой формы с помощью слотов вида: on_someControl_someSignal().
4. Возможность перевести закешированые с виджетах строки по событию QEvent::LanguageChange с помощью одного-единственного вызова retranslateUi().
5. Редактирование ресурсов и возможность задать предустановленые иконки из этих ресурсов на виджеты.
6. Создание действий (QAction), размещение их в меню, на произвольные виджеты, задание этим действиям предустановленые сочетания горячих клавиш.

Дизайнер ещё хорош тем, что генерируемый им код без избыточности. Фактически он замещает кусок кода, который программисту пришлось бы писать руками и при этом не добавляет в этот код ничего лишнего.

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

Поэтому начинающим стоит писать код без дезигнера, а уж когда освоятся и поймут основные принципы расположения виджетов в кути, то можно и дизигнер.

Я сам начинал писать код руками и это для меня намного удобнее чем рисовать их в дизайнере, в дизайнере я постоянно забываю переименовывать объекты, меня раздражает когда кидаешь layout и он сжимается другим layout'om до 1-го пикселя, а мне туда надо кнопку впихнуть. Единственное что удобно в дизайнере это создавать менюшки.
С другой стороны, писал в течении 4-х месяцев быдлопрограмму для диплома, делал все полностью руками, кода к концу проекта было >10000, порядка 20-ти классов, и вот тогда я реально пожалел что не отделил интерфейс от основного кода. Нормально ореинтироваться было просто невозможно.

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

>С другой стороны, писал в течении 4-х месяцев быдлопрограмму для диплома, делал все полностью руками, кода к концу проекта было >10000, порядка 20-ти классов, и вот тогда я реально пожалел что не отделил интерфейс от основного кода. Нормально ореинтироваться было просто невозможно.

Когда пишешь руками, можно с тем же успехом отделять основной код от дизайна. Делать так же, как и делает дизигнер - через наследование от класса с дизайном.

anonymous
()

designer odnosnachno, vne savisimosti ot sloznosti - pisat rukami v lubom sluchae dolsche

anonymous
()

Как уже сказали - избыточность кода при использовании дизайнера минимальная - поэтому дизайнер.

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

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

AVATAR
()

Начинал я с Qt3, собсна только пробовал, целую одну прогу написал, делал в дизигнере.

Потом стал калякать всякое в Qt4, сначала делал формы руками. Потом попробовал в дезигнере. В итоге понял, что в дезигнере при достаточно сложных формах я экономлю кучу времени, и для меня проблема такого выбора отпала. Лейоуты пустые я на форму не кидаю, кидаю виджеты, потом их выделяю группой и группирую в лейоут.

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