Может ли QLayout скрывать, а не изменять размер QWidgets? - PullRequest
4 голосов
/ 02 февраля 2012

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

Я не вижу ни одного способа, чтобы стандартные QLayout справились с этим. Я думаю, вы могли бы подумать, что дочерние виджеты имеют приоритет, а низко приоритетные скрыты.

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

1 Ответ

0 голосов
/ 02 февраля 2012

Посмотрите на QStackedWidget.Я просто начал использовать их сам.

У них есть "страницы", которые отображаются / скрываются при вызове.Например:

ui.stackedWidget->setCurrentIndex( 0 );

Например, когда отображается индекс 0, страницы 1,2,3 ... скрыты внизу.

Я подключенсвязке переключателей, которые при нажатии отображают соответствующую страницу / виджеты и скрывают остальные «внизу».Подключение просто:

connect( button_group_ptr, SIGNAL( buttonClicked( int ) ), ui.stackedWidget, SLOT( setCurrentIndex( int ) ) );
connect( ui.stackedWidget, SIGNAL( currentChanged( int ) ), this, SLOT( stackedWidgetChanged( int ) ) );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...