Qt:如何设置QVBoxlayout的最大宽度

时间:2013-11-27 10:05:10

标签: c++ qt

我目前有一个horziontal布局,其中有两个垂直布局。 Vlayout1VLayout2。现在我想设置VLayout1的最大宽度限制,以便在此之后展开表单时,只展开Vlayout1
有关如何实现此目的的任何建议吗?

2 个答案:

答案 0 :(得分:9)

您可以执行“hack”并将布局放在窗口小部件中

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

有效:)

答案 1 :(得分: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);

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

相关问题