Qt之QSpacerItem
簡述
QSpacerItem類為布局提供了一個空白區。
- 簡述
- 比對
- 使用
- 效果
- 源碼
- 效果
- 源碼
比對
通常情況下,不需要直接使用這個類,Qt內建布局管理器在操控空白區時提供以下功能:
| QHBoxLayout | addSpacing()、addStretch()、insertSpacing()、insertStretch() |
| QGridLayout | setRowMinimumHeight()、setRowStretch()、setColumnMinimumWidth()、setColumnStretch() |
使用
在Qt之水平/垂直布局(QBoxLayout、QHBoxLayout、QVBoxLayout)一節中我們講解了水平布局、垂直布局的用法,下面我們以此為例,來講解如何使用QSpacerItem。
下面,我們以水平布局(其它布局類似)為例來講解如何使用QSpacerItem。
效果
源碼
QPushButton *pButton1 = new QPushButton("One"); QPushButton *pButton2 = new QPushButton("Two"); QPushButton *pButton3 = new QPushButton("Three"); QPushButton *pButton4 = new QPushButton("Four"); QPushButton *pButton5 = new QPushButton("Five");QHBoxLayout *pHLayout = new QHBoxLayout(); pHLayout->addWidget(pButton1); pHLayout->addWidget(pButton2); pHLayout->addWidget(pButton3); pHLayout->addWidget(pButton4); pHLayout->addWidget(pButton5);setLayout(pHLayout);// 輸出默認的間距、外邊距 qDebug() << "Spacing: " << pHLayout->spacing(); qDebug() << "Margin: " << pHLayout->margin();如上,我們獲取默認的間距、外邊距,分別為Spacing:10,Margin:0
效果
源碼
假如控件之間的間距不盡相同,那么就不能僅僅使用setSpacing()了,這時可以借助QSpacerItem來設置。
下面,我們手動設置間距、外邊距均為0,通過QSpacerItem及addSpacing()來設置按鈕鍵的間距。
QHBoxLayout *pHLayout = new QHBoxLayout(); pHLayout->addWidget(pButton1); // 添加空白區寬20px、高20px pHLayout->addSpacerItem(new QSpacerItem(20, 20)); pHLayout->addWidget(pButton2); // 添加間距10px pHLayout->addSpacing(10); pHLayout->addWidget(pButton3); // 添加空白區寬20px、高20px,寬度盡可能的縮小、放大 pHLayout->addSpacerItem(new QSpacerItem(20, 20, QSizePolicy::Expanding)); pHLayout->addWidget(pButton4); pHLayout->addSpacing(2); pHLayout->addWidget(pButton5);pHLayout->setSpacing(0); pHLayout->setMargin(0); setLayout(pHLayout);我們可以看到,QSpacerItem(int w, int h, QSizePolicy::Policy hData = QSizePolicy::Minimum, QSizePolicy::Policy vData = QSizePolicy::Minimum)可以設置水平、垂直方向的大小調整策略,
默認為QSizePolicy::Minimum。
如上,我們構造了兩個寬20px、高20px的空白區:
- QSizePolicy::Minimum:空白區不能小于該面積量,但可以在有效空間內放大。
- QSizePolicy::Expanding:空白區會隨窗口的放大縮小而放大縮小。
關于”大小策略”后面章節會進行詳細講解,敬請期待。
轉載于:https://www.cnblogs.com/itrena/p/5938321.html
總結
以上是生活随笔為你收集整理的Qt之QSpacerItem的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 8个屏幕防损小技巧 都收了吧!
- 下一篇: 苹果iPhone6s/iPhone6s