目錄
代碼?例: 創建?組左右排列的按鈕.
Spacer
使?布局管理器的時候, 可能需要在控件之間, 添加?段空?. 就可以使? QSpacerItem 來表?.
核?屬性
屬性 | 說明 |
---|---|
width | 寬度 |
height | 高度 |
hData | 水平方向的 sizePolicy -? QSizePolicy::Ignored :忽略控件的尺寸,不對布局產生影響。-? QSizePolicy::Minimum :控件的最小尺寸為固定值,布局時不會超過該值。-? QSizePolicy::Maximum :控件的最大尺寸為固定值,布局時不會小于該值。-? QSizePolicy::Preferred :控件的理想尺寸為固定值,布局時會盡量接近該值。-? QSizePolicy::Expanding :控件的尺寸可以根據空間調整,盡可能占據更多空間。-? QSizePolicy::Shrinking :控件的尺寸可以根據空間調整,盡可能縮小以適應空間。 |
vData | 垂直方向的 sizePolicy 選項同上。 |
上述屬性在構造函數設置即可
代碼?例: 創建?組左右排列的按鈕.
1) 在界?上創建?個 QVBoxLayout , 并添加兩個按鈕
2) 直接運?程序, 可以看到兩個按鈕是緊挨著的


3) 在兩個按鈕中間添加?個 spacer
//創建 spacer 使兩個按鈕之間存在空白.QSpacerItem* spacer = new QSpacerItem(100, 200);
?
#include "widget.h"
#include "ui_widget.h"
#include <QHBoxLayout>
#include <QPushButton>
#include <QSpacerItem>Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);QHBoxLayout* layout = new QHBoxLayout();this->setLayout(layout);QPushButton* button1 = new QPushButton("按鈕1");QPushButton* button2 = new QPushButton("按鈕2");//創建 spacer 使兩個按鈕之間存在空白.QSpacerItem* spacer = new QSpacerItem(100, 200);// 當前是要把空白添加到兩個按鈕之間. 此處 add 的順序就是把 addSpacerItem 放到中間了.layout->addWidget(button1);layout->addSpacerItem(spacer);layout->addWidget(button2);}Widget::~Widget()
{delete ui;
}
4) 運?程序, 觀察代碼效果. 可以看到兩個按鈕之間已經存在了間隔了.
調整 QSpacerItem 不同的尺?, 即可看到不同的間距

在 Qt Designer 中, 也可以直接給界?上添加 spacer.
上述的每個控件,都是”可擴展的’
每個控件都是對應Qt內置的一個類
咱們在代碼中都可以基于這個類,繼承出你自定義的子類~~
在這個自定義的子類中,又可以添加很多的屬性和方法~~實現你自己的需求場景~~
還可以在子類中,把多個控件組合到一起~~