我目前有一个horziontal布局,其中有两个垂直布局.Vlayout1和VLayout2.现在我想设置一个最大宽度限制,VLayout1以便在此之后Vlayout1展开表单时,只展开.
有关如何实现这一目标的任何建议?
您可以执行"hack"并将布局放在窗口小部件中
QWidget *controlsRestrictorWidget = new QWidget();
QVBoxLayout *layoutVControls = new QVBoxLayout();
controlsRestrictorWidget->setLayout(layoutVControls);
controlsRestrictorWidget->setMaximumWidth(350);
Run Code Online (Sandbox Code Playgroud)
有用 :)
小智 0
您无法设置 的最大大小QVBoxLayout。您可能需要设置布局包含的小部件的最大尺寸。如果您希望其中一个布局拉伸,而另一个布局保持相同大小,您可以在主窗口构造函数中尝试以下操作:
QPushButton* btn1 = new QPushButton("Button1");
QPushButton* btn2 = new QPushButton("Button2");
QHBoxLayout* hLayout = new QHBoxLayout;
QVBoxLayout* vLayout1 = new QVBoxLayout;
QVBoxLayout* vLayout2 = new QVBoxLayout;
hLayout->addLayout(vLayout1, 1);
hLayout->addLayout(vLayout2, 0);
vLayout1->addWidget(btn1);
vLayout2->addWidget(btn2);
QWidget* placeholder = new QWidget;
placeholder->setLayout(hLayout);
setCentralWidget(placeholder);
Run Code Online (Sandbox Code Playgroud)
如果您现在调整窗口大小,您将看到包含拉伸的布局Button2,而包含的布局Button1保持相同的大小。