Макет требуется в дизайнере, но не в приложении, написанном от руки?
Я новичок в Qt, и это довольно круто! Я занимался поиском / чтением / взломом и обучением большую часть дня на этом.
Я работаю над приложением, которое будет иметь изображение в области прокрутки в качестве основной цели. Пример просмотра изображений, где я начал. Этот пример выглядит "выложенным вручную", если хотите - то есть для него нет файлов форм.ui (он тривиален, так почему бы и нет).
Итак, вот в чем проблема - я хочу использовать конструктор для создания гораздо более сложного приложения. Если я начну заново с нового проекта и использую конструктор, изменение размера не будет работать, пока я не добавлю макет (используется вертикальный, все, кажется, чтобы решить проблему изменения размера) в форму.ui.
Дизайнер создает намного больше кода, чтобы сделать то же самое - мне все равно, это ведь инструмент IDE / генерации кода.
Однако мне не ясно, почему макет требуется, когда я использую конструктор, а не если я пишу его вручную. Я искал код для примера средства просмотра изображений, и похоже, что ЛЮБОЙ макет вообще не задействован, только 3 или 4 вложенных виджета (Main/Scroll/Label).
Макет по умолчанию в основном встроен?
1 ответ
Пример, на который вы ссылаетесь, использует QMainWindow
, Этот виджет имеет свой собственный макет, потому что он имеет встроенную поддержку меню, панелей инструментов, виджетов дока и строки состояния:
Обычно для виджета, установленного в качестве центрального виджета, должен быть явно установлен макет для размещения собственных дочерних виджетов. Тем не менее, в вашем связанном примере, центральный виджет QScrollArea
, который также имеет встроенный макет. Это все просто случайно, хотя. Подавляющее большинство виджетов не имеют встроенного макета, поэтому большинству графических интерфейсов потребуется явно добавить по крайней мере один макет, а для более сложных приложений обычно потребуется несколько.
Я бы сказал, что Qt Designer абсолютно необходим, когда дело доходит до экспериментов с макетами (особенно когда вы начинаете изучать Qt). Даже если вы на самом деле не используете файл пользовательского интерфейса, все равно очень полезно просто просмотреть код, который будет сгенерирован из него.