Qt:布局中加间隔器(纯代码版)

下面就以水平布局中加入水平间隔器为例(纯代码版)

一、添加头文件

首先需要包含以下三个头文件:

#include <QVBoxLayout>
#include <QHBoxLayout>
#include <QSpacerItem>

二、创建控件

构造具有首选宽度 w、首选高度 h、水平尺寸策略 hPolicy 和垂直尺寸策略 vPolicy 的间隔项

需要注意的是水平间隔器和垂直间隔器构造函数中第三四个参数的区别。

QHBoxLayout *p_hlayout;
QSpacerItem *hSpacer_left;
QSpacerItem *hSpacer_right;

p_hlayout = new QHBoxLayout();
p_hlayout->setContentsMargins(0,0,0,0);
p_hlayout->setSpacing(0);

//水平间隔器
hSpacer_left = new QSpacerItem(10,10,QSizePolicy::Expanding,QSizePolicy::Minimum);
hSpacer_right = new QSpacerItem(10,10,QSizePolicy::Expanding,QSizePolicy::Minimum);

//垂直间隔器
new QSpacerItem(10,10,QSizePolicy::Minimum,QSizePolicy::Expanding);

三、调整布局

在布局中加入以下三个控件:

p_hlayout->addSpacerItem(hSpacer_left);    //最左边加水平间隔器
p_hlayout->addWidget(p_tabbar);
p_hlayout->addSpacerItem(hSpacer_right);   //最右边加水平间隔器

最终就在水平布局中添加了两个水平间隔器,这样中间控件就会处于居中的位置。

四、其他方法

QHBoxLayout::addStretch(int Stretch = 0);

用法:以水平管理器为例,

          布局管理器在添加完控件后使用函数addStretch(),则控件排布向左靠齐

          布局管理器在添加控件前使用函数addStretch(),则控件排布向右靠齐

          布局管理器在添加每个控件前后使用函数addStretch(),则控件居中排布

//添加最后向左靠齐
HBoxLayout1 = new QHBoxLayout();
HBoxLayout1->addWidget(btn1);
HBoxLayout1->addWidget(btn2);
HBoxLayout1->addWidget(btn3);
HBoxLayout1->addWidget(btn4);
HBoxLayout1->addStretch(); 
//这个就像在这一个水平布局管理器添加了一个个弹簧将各个控件向前挤,靠左对齐,根据弹簧位置,弹簧压缩,设置对齐方式。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值