Qt: выровнять элементы управления, которые находятся в разных макетах - PullRequest
1 голос
/ 07 октября 2010

В форме, разработанной с помощью Qt Designer, у меня есть два QGroupBox с кучей элементов управления в каждом из них.Оба групповых блока имеют почти одинаковое содержимое (QLineEdits со связанными метками).

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

Есть ли способ сделать это в Qt Designer?Если нет, есть ли способ сделать это в коде?

Спасибо!

1 Ответ

3 голосов
/ 07 октября 2010

Нет способа сделать это в Designer.Насколько я знаю, Qt также не предоставляет хороший способ сделать это в коде.Если вы действительно этого хотите, вам, вероятно, придется полагаться на что-то немного странное.

Вот моя первая идея: переопределить resizeEvent () в виджете, который содержит две групповые рамки, чтобы получить предпочтительный размер (через sizeHint() илиimumSizeHint ()) всех меток и установите фиксированную ширину всех меток на наибольшую предпочтительную ширину.

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

Кстати, вы можете взглянуть на QFormLayout, если вы еще этого не сделали.

...