2012-12-21 94 views
3

我對桌面GUI開發頗爲陌生。3個面板的Qt佈局,全部垂直擴展以填充

我想獲得一個框架與3平行垂直面板,所有垂直擴展填充窗口。

我想要前兩個面板不是靈活的,但有一個固定的大小。

例:

Fixed W. 
|========| 
############################ 
# # #    #^
#Fix.#Fix.#    # | 
#|--|#|--|# <--Flexible--> # Flexible vertically all 3 panels. 
# # #    # | 
# # #    # v 
############################ 

我怎樣才能獲得此佈局?我嘗試了網格,垂直,水平,但我想我把它全部弄成了意大利麪和混亂。

謝謝。

回答

4

你需要一個

QHBoxLayout 

你只需要爲您的固定部件固定寬度(左)。

這裏是C++一個完整的工作示例:

#include <QApplication> 
#include <QtGui> 

int main(int argc, char *argv[]) 
{ 
    QApplication a(argc, argv); 
    QFrame* w1 = new QFrame; 
    w1->setFixedWidth(100); 
    w1->setStyleSheet("background-color: red"); 

    QFrame* w2 = new QFrame; 
    w2->setFixedWidth(100); 
    w2->setStyleSheet("background-color: blue"); 

    QFrame* w3 = new QFrame; 
    w3->setStyleSheet("background-color: green"); 
    w3->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); 

    QHBoxLayout* layout = new QHBoxLayout; 

    layout->addWidget(w1); 
    layout->addWidget(w2); 
    layout->addWidget(w3); 

    QWidget* app = new QWidget; 
    app->setLayout(layout); 
    app->show(); 
    return a.exec(); 
} 

,然後將截圖:

enter image description here

+0

謝謝@Kikohs!優秀的品質幫助。 – Phil

+0

不客氣:-) – Kikohs