1. 程式人生 > >佈局管理器的應用

佈局管理器的應用

佈局管理器能根據視窗的變化自動適應視窗大小。佈局管理器不是介面元件,只是一種定位的策略,通常使用類庫自帶的佈局管理器類,但也可以自定義佈局管理器。

 

佈局管理器類結構:

 

    

其中QFromLayout佈局在嵌入式領域用的最廣泛

 

佈局管理器使用方式:

1.建立佈局管理器物件

2.連結元件物件

3.將某個小部件的管理器設定為總佈局

 

QHBoxLayout* hLayout1 = new QHBoxLayout();

    QHBoxLayout* hLayout2 = new QHBoxLayout();

    QVBoxLayout* vLayout = new QVBoxLayout();

    //建立佈局管理器物件

 

    TestBtn1.setText("Test Button 1");

    TestBtn1.setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);

    TestBtn1.setMinimumSize(160, 30);

 

    TestBtn2.setText("Test Button 2");

    TestBtn2.setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);//設定控制元件的大小變化,Expanding:拉伸

    TestBtn2.setMinimumSize(160, 30);

 

    hLayout1->setSpacing(10);//設定間隔

    hLayout1->addWidget(&TestBtn1);

    hLayout1->addWidget(&TestBtn2);

    //連結GUI元件物件

 

    TestBtn3.setText("Test Button 3");

    TestBtn3.setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);

    TestBtn3.setMinimumSize(160, 30);

 

    TestBtn4.setText("Test Button 4");

    TestBtn4.setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);

    TestBtn4.setMinimumSize(160, 30);

 

    hLayout2->setSpacing(10);

    hLayout2->addWidget(&TestBtn3);

    hLayout2->addWidget(&TestBtn4);

    //連結GUI元件物件

 

    vLayout->setSpacing(10);

    vLayout->addLayout(hLayout1);

    vLayout->addLayout(hLayout2);

    ////連結佈局元件物件,佈局管理器之間的相互巢狀

 

    setLayout(vLayout);

    //將vLayout設定為總佈局

    //佈局管理器還能設定按比例變化

}

 

 

    QLineEdit* nameEdit = new QLineEdit();

    QLineEdit* emailEdit = new QLineEdit();

    QLineEdit* addressEdit = new QLineEdit();

 

    QFormLayout* layout = new QFormLayout();

 

    layout->addRow("Name:", nameEdit);     //設定標籤和元件

    layout->addRow("Email:", emailEdit);

    layout->addRow("Address:", addressEdit);

    layout->setRowWrapPolicy(QFormLayout::WrapAllRows);    //顯示方式

    layout->setLabelAlignment(Qt::AlignLeft);

 

    setLayout(layout);

    setWindowTitle("FTP");

 

            //詳細的使用方法參考幫助文件

 

棧式佈局管理器:

    -所有元件在垂直於螢幕的方向上被管理

    -每次只有一個元件顯示在螢幕上

    -只有頂層的主機會被最終顯示

 

 

//文章參考狄泰軟體學院Qt視訊教程