Qt中的QBoxLayout
生活随笔
收集整理的這篇文章主要介紹了
Qt中的QBoxLayout
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 1 Qt中的QBoxLayout
- 1.1 QBoxLayout
- 1.2 布局管理器的嵌套
1 Qt中的QBoxLayout
1.1 QBoxLayout
QBoxLayout布局管理器:
- 以水平或者垂直的方式管理界面組件。
布局管理器中的比例系數:
- 默認情況下以等比例的方式更新組件的大小。
- 可以自定義組件大小更新時的比例系數。
QBoxLayout中的比例系數設置:
注意: 組件的初始大小是獨立于布局管理器設置的,因此不能保證組件的大小始終符合比例系數的設置。
垂直布管理器示例代碼:
void Widget::testVBoxLayout() {QVBoxLayout* layout = 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);TestBtn2.setMinimumSize(160, 30);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);layout->setSpacing(30);layout->addWidget(&TestBtn1);layout->addWidget(&TestBtn2);layout->addWidget(&TestBtn3);layout->addWidget(&TestBtn4);layout->setStretch(0, 1);layout->setStretch(1, 1);layout->setStretch(2, 2);layout->setStretch(3, 2);setLayout(layout); }水平布局管理器示例代碼:
void Widget::testHBoxLayout() {QHBoxLayout* layout = new QHBoxLayout();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);TestBtn2.setMinimumSize(160, 30);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);layout->setSpacing(30);layout->addWidget(&TestBtn1);layout->addWidget(&TestBtn2);layout->addWidget(&TestBtn3);layout->addWidget(&TestBtn4);layout->setStretchFactor(&TestBtn1, 1);layout->setStretchFactor(&TestBtn2, 2);layout->setStretchFactor(&TestBtn3, 1);layout->setStretchFactor(&TestBtn4, 3);setLayout(layout); }1.2 布局管理器的嵌套
布局管理器可以相互嵌套,形成更加復雜的布局方式:
- 布局嵌套幾乎可以完成所有常用的界面布局。
- 自定義布局類可以達到個性化界面布局的效果。
QBoxLayout嵌套實例:
布局管理器的相互嵌套示例代碼:
思考一個問題:當使用了布局管理器后,如何設置組件的初始化大小呢?
參考資料:
總結
以上是生活随笔為你收集整理的Qt中的QBoxLayout的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Qt中的布局管理器
- 下一篇: Qt中的QGridLayout