Достался в наследство следующий код.
Имеется диалоговое окно фиксированного размера (то, что qt генерит из *.ui, с сокращениями):
class Ui_dlgMenu
{
public:
QVBoxLayout *verticalLayout;
QScrollArea *scrollArea;
QWidget *scr_wdg_contents;
QVBoxLayout *verticalLayout_3;
QVBoxLayout *menu_splitter;
void setupUi(QWidget *dlgMenu)
{
dlgMenu->resize(272, 480);
dlgMenu->setMaximumSize(QSize(272, 480));
verticalLayout = new QVBoxLayout(dlgMenu);
scrollArea = new QScrollArea(dlgMenu);
sizePolicy1.setHorizontalStretch(0);
sizePolicy1.setVerticalStretch(0);
sizePolicy1.setHeightForWidth(scrollArea->sizePolicy().hasHeightForWidth());
scrollArea->setSizePolicy(sizePolicy1);
scrollArea->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
scrollArea->setWidgetResizable(true);
scr_wdg_contents = new QWidget();
scr_wdg_contents->setGeometry(QRect(0, 0, 268, 470));
verticalLayout_3 = new QVBoxLayout(scr_wdg_contents);
menu_splitter = new QVBoxLayout();
verticalLayout_3->addLayout(menu_splitter);
scrollArea->setWidget(scr_wdg_contents);
verticalLayout->addWidget(scrollArea);
}
Во время работы на лэйаут menu_splitter динамически добавляются виджеты - одна или две Label и сколько угодно Button.
Содержимое окна центрируется по вертикали, когда кнопок становится слишком много, появляется полоса прокрутки.
Как сделать, чтобы Lable всегда оставались на экране?
Т.е. по мере добавления Button Lable перемещаются к верхней границе, а когда кнопок станет слишком много полоса прокрутки должна появиться только для них, а Lable будут видны постоянно.