qt на Mac: макет формы не может растягиваться горизонтально - PullRequest
1 голос
/ 16 мая 2019

Я все еще пытаюсь сделать довольно простые вещи с помощью qt, и это была борьба. Я специально ориентируюсь на Mac. Моя текущая проблема - заставить формы не сосать.

Простая проблема. Создайте новое приложение MainWindow. Зайдите в Qt Creator (откройте Forms-> mainwindow.ui).

Перетащите 3 метки на место. Затем я перетащил 2-строчные изменения и, для забавы, набор, но эта часть, вероятно, не имеет значения.

Щелкните по главному окну, а затем скажите ему, чтобы использовать макет формы. В Qt Creator, если я изменю размер окна, мои правки строк расширяются, чтобы заполнить доступное пространство, точно так, как я хочу.

Запустите приложение. Все поля редактирования строк имеют фиксированную длину, очень короткие (если я не переопределяю их минимальную ширину), и НЕ меняют размер при изменении размера окна.

Три четверти причин, по которым стоит использовать форму, - возможность изменения размера.

Я пытался щелкнуть по центральному виджету, прежде чем установить форму формы: никаких изменений в поведении.

Я делаю получаю разумное поведение, если я использую сетку, хотя мне приходится добавлять вертикальную прокладку внизу, или мой циферблат безумно изменяет размеры, когда я играю с размером окна.

Итак ... Я просто что-то не так делаю с Form Layout? Или это не очень хорошо работает на Mac, и я должен вместо этого использовать Grid Layout?

Я очень скучаю по XmFormLayout от Motif. Потребовалось время, чтобы установить все ограничения, но я мог заставить свои формы делать то, что я хотел. Ах, но так 1990-х годов.

1 Ответ

1 голос
/ 17 мая 2019

На панели справа, где вы можете видеть объекты, нажмите centralWidget.На панели свойств прокручивайте вниз, пока не дойдете до свойств макета макета формы.Установите для layoutFieldGrowthPolicy значение ExpandingFieldsGrow.

. По умолчанию редактирование строк не увеличивается, чтобы заполнить доступное пространство в macOS, поскольку они не должны этого делать.Это своего рода руководство по MacOS UI.QFormLayout по умолчанию следует соглашениям платформы.

Было бы также неплохо, если бы я мог понять, как НЕ обязательно расширять все до полной ширины.У меня есть несколько виджетов Line Edit, которые я бы хотел оставить короткими.Они собираются хранить номера портов TCP.

Для них установите свойство Horizontal Policy (оно сгруппировано внутри группы свойств sizePolicy на панели свойств) изменений строки, на которые влияют, что-топодходящее.В этом случае, вероятно, Fixed, но сначала посмотрите документацию о том, что делает каждый параметр.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...