日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Qt之QSpacerItem

發布時間:2023/12/19 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Qt之QSpacerItem 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

簡述

QSpacerItem類為布局提供了一個空白區。

  • 簡述
  • 比對
  • 使用
    • 效果
    • 源碼
    • 效果
    • 源碼

比對

通常情況下,不需要直接使用這個類,Qt內建布局管理器在操控空白區時提供以下功能:

類函數
QHBoxLayoutaddSpacing()、addStretch()、insertSpacing()、insertStretch()
QGridLayoutsetRowMinimumHeight()、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的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。