佈局管理器的應用
佈局管理器能根據視窗的變化自動適應視窗大小。佈局管理器不是介面元件,只是一種定位的策略,通常使用類庫自帶的佈局管理器類,但也可以自定義佈局管理器。
佈局管理器類結構:
其中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視訊教程