Qt:如何设置QVBox布局的最大宽度

Qt: How to set the maximum width of a QVBoxlayout

本文关键字:布局 QVBox 何设置 设置 Qt      更新时间:2023-10-16

我目前有一个水平布局,其中有两个垂直布局。Vlayout1VLayout2。现在我想设置VLayout1的最大宽度限制,这样,如果在那之后展开表单,则只有Vlayout1展开
关于我如何做到这一点,有什么建议吗?

您可以执行;破解";并将您的布局放在一个小部件内,您可以为其定义最大宽度:

QWidget *controlsRestrictorWidget = new QWidget();
QVBoxLayout *layoutVControls = new QVBoxLayout();
controlsRestrictorWidget->setLayout(layoutVControls);
controlsRestrictorWidget->setMaximumWidth(350);

它的工作原理是:)

您不能设置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);

如果现在调整窗口的大小,您将看到包含Button2拉伸的布局,而包含Button1的布局保持不变。