Раскладка Qt4 в групповой коробке - PullRequest
3 голосов
/ 05 апреля 2011

Я пытаюсь создать QGroupBox, чтобы размер его содержимого соответствовал содержанию.Я думаю, что я не понимаю, как именно это работает, и я попадаю в эту странную ситуацию: у меня есть 2 кнопки в горизонтальной компоновке, и я поместил это внутри QGroupBox.Я добавил слот для печати информации отладки при нажатии кнопки (чтобы окно полностью загружалось при выполнении кода отладки).

Проблема в том, что QGroupBox 'sizeHint возвращает (-1, -1) но горизонтальное расположение внутри QGroupBox имеет правильное значение sizeHint.Есть идеи, почему sizeHint в QGroupBox (-1, -1)?Я думаю, что эта проблема вызывает все мои другие проблемы, потому что если sizeHint недействителен, то sizeConstraint и sizePolicy не будут влиять на QGroupBox.Я ожидал, что родительский виджет будет немного больше sizeHint, чем дочерний макет.

Виджеты и макеты создаются с помощью Designer (возможно, это уместно, у меня сложный интерфейс, поэтому я должен использоватьДизайнер).

Обновление: Я посмотрел код, сгенерированный в методе setupUi, и похоже, что создан промежуточный виджет, макет с кнопками размещен на виджете иэтот виджет находится на QGroupBox.Я думаю, что это для функции, что в дизайнере вы можете разместить макет внутри виджета, а также можете изменить его размер.Можно ли пропустить этот виджет при использовании дизайнера?

Ответы [ 2 ]

4 голосов
/ 07 апреля 2011

.Я нашел решение, в конструкторе вы можете выбрать виджеты, которые вы хотите макет, а затем нажмите макет в сетке / форма / горизонтальный и т. Д. Кнопка / меню.Эта опция создаст невидимый виджет, поместит выбранные виджеты в макет и установит этот макет как невидимый виджет.Чтобы избежать этого, вы можете щелкнуть по групповому блоку, попасть в контекстное меню макета и установить меню, это позволит выровнять виджеты, но макет не отображается в дереве виджетов.

2 голосов
/ 06 апреля 2011

Полагаю, это потому, что вы на самом деле не установили макет в свой QGroupBox виджет. Посмотрите, решит ли проблема добавление строки ниже в ваш оконный конструктор:

ui->groupBox->setLayout(ui->horizontalLayout);

, где groupBox и horizontalLayout - QGroupBox и QHBoxLayout в вопросе.

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