我有一个 QVBoxLayout 作为我的窗口中的指针,并且想要动态添加小部件(当用户按下按钮时,小部件被添加到 VBoxLayout)。VBoxLayout 设置为 ScrollArea 中的 Layout。但是如果我将小部件添加到 VBoxLayout,则 VBoxLayout 的大小不会改变,并且所有内容都会被弄皱。
m_ControlsLayout = new QVBoxLayout; //A member variable to add things later
{
QPushButton *PushButton = new QPushButton(tr("Add a new control"));
connect(PushButton, SIGNAL(clicked()), this, SLOT(addControl())); //Adds it
m_ControlsLayout->addWidget(PushButton, 1);
}
for(int i=0;i<10;i++) //I am adding 10 useless Widgets to fill the space
addControl();
QScrollArea *ScrollArea = new QScrollArea;
connect(this)
ScrollArea->setWidget(Layout2Widget(m_ControlsLayout));
addControl() Slot 只是添加了一个 Widget:
m_ControlsLayout->addWidget(new ControlWidget);
我想我必须告诉 QScrollArea 它应该更新它的高度。