2012-03-14 2 views
1

Я использую QHBoxLayout, чтобы показать 5 виджетов по горизонтали.Скрытие виджета в qlayout

Если я скрою и покажу один виджет, он будет изменен. Как я могу предотвратить это?

ответ

2

Вы не можете. Если вы скроете виджет, он исчезнет с экрана, и все остальное будет изменено/изменено, чтобы максимально использовать доступное пространство.

Однако вы можете заменить виджет на расстояние, ср. QBoxLayout::addSpacing или QBoxLayout::addSpacerItem, который вы устанавливаете на ширину виджета, который вы скрываете.

+0

Я помню, что где-то я что-то читал, но не могу найти его сейчас. Знаете ли вы, где говорится, что виджеты не должны скрываться в макете? –

+0

@VJovic: Извините, у меня нет цитаты. Это так, как я это делаю. Кроме того, вы могли бы использовать «QGridLayout», который имеет функцию 'setColumnMinimumWidth()', но я не уверен в этом. – arne

+2

См. Мой ответ, где я показываю, как скрыть виджет, сохраняя при этом пустое пространство в макете. Он не требует вставки каких-либо временных элементов макета. http://stackoverflow.com/questions/10794532/how-to-make-a-qt-widget-invisible-without-changing-the-position-of-the-other-qt/10840906#10840906 –

Смежные вопросы