Qt QSpacerItem
2021/6/2 10:24:09
本文主要是介绍Qt QSpacerItem,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
简述
QSpacerItem类为布局提供了一个空白区。
比对
通常情况下,不需要直接使用这个类,Qt内建布局管理器在操控空白区时提供以下功能:
类 函数
QHBoxLayout addSpacing()、addStretch()、insertSpacing()、insertStretch()
QGridLayout setRowMinimumHeight()、setRowStretch()、setColumnMinimumWidth()、setColumnStretch()
使用
在Qt之水平/垂直布局(QBoxLayout、QHBoxLayout、QVBoxLayout)一节中我们讲解了水平布局、垂直布局的用法,下面我们以此为例,来讲解如何使用QSpacerItem。
下面,我们以水平布局(其它布局类似)为例来讲解如何使用QSpacerItem。
效果
源码
1 QPushButton *pButton1 = new QPushButton("One"); 2 QPushButton *pButton2 = new QPushButton("Two"); 3 QPushButton *pButton3 = new QPushButton("Three"); 4 QPushButton *pButton4 = new QPushButton("Four"); 5 QPushButton *pButton5 = new QPushButton("Five"); 6 7 QHBoxLayout *pHLayout = new QHBoxLayout(); 8 pHLayout->addWidget(pButton1); 9 pHLayout->addWidget(pButton2); 10 pHLayout->addWidget(pButton3); 11 pHLayout->addWidget(pButton4); 12 pHLayout->addWidget(pButton5); 13 14 setLayout(pHLayout); 15 16 // 输出默认的间距、外边距 17 qDebug() << "Spacing: " << pHLayout->spacing(); 18 qDebug() << "Margin: " << pHLayout->margin();
如上,我们获取默认的间距、外边距,分别为Spacing:10,Margin:0
效果
源码
假如控件之间的间距不尽相同,那么就不能仅仅使用setSpacing()了,这时可以借助QSpacerItem来设置。
下面,我们手动设置间距、外边距均为0,通过QSpacerItem及addSpacing()来设置按钮键的间距。
1 QHBoxLayout *pHLayout = new QHBoxLayout(); 2 pHLayout->addWidget(pButton1); 3 // 添加空白区宽20px、高20px 4 pHLayout->addSpacerItem(new QSpacerItem(20, 20)); 5 pHLayout->addWidget(pButton2); 6 // 添加间距10px 7 pHLayout->addSpacing(10); 8 pHLayout->addWidget(pButton3); 9 // 添加空白区宽20px、高20px,宽度尽可能的缩小、放大 10 pHLayout->addSpacerItem(new QSpacerItem(20, 20, QSizePolicy::Expanding)); 11 pHLayout->addWidget(pButton4); 12 pHLayout->addSpacing(2); 13 pHLayout->addWidget(pButton5); 14 15 pHLayout->setSpacing(0); 16 pHLayout->setMargin(0); 17 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:空白区会随窗口的放大缩小而放大缩小。
这篇关于Qt QSpacerItem的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23增量更新怎么做?-icode9专业技术文章分享
- 2024-11-23压缩包加密方案有哪些?-icode9专业技术文章分享
- 2024-11-23用shell怎么写一个开机时自动同步远程仓库的代码?-icode9专业技术文章分享
- 2024-11-23webman可以同步自己的仓库吗?-icode9专业技术文章分享
- 2024-11-23在 Webman 中怎么判断是否有某命令进程正在运行?-icode9专业技术文章分享
- 2024-11-23如何重置new Swiper?-icode9专业技术文章分享
- 2024-11-23oss直传有什么好处?-icode9专业技术文章分享
- 2024-11-23如何将oss直传封装成一个组件在其他页面调用时都可以使用?-icode9专业技术文章分享
- 2024-11-23怎么使用laravel 11在代码里获取路由列表?-icode9专业技术文章分享
- 2024-11-22怎么实现ansible playbook 备份代码中命名包含时间戳功能?-icode9专业技术文章分享