2013-11-27 24 views
6

我目前有一個horziontal佈局,其中有兩個垂直佈局。 Vlayout1VLayout2。現在我想要設置最大寬度限制VLayout1,這樣如果表單在此之後展開,則只會擴展Vlayout1
關於如何完成此任務的任何建議?Qt:如何設置QVBoxlayout的最大寬度

回答

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的佈局保持相同的尺寸。

6

你可以做一個「黑客」,並把你的佈局的窗口小部件

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

它的工作原理:)