QT布局——设置的一些基本细节

1.外边距Margin
  • setMargin(int)
  • setContentsMargins(int left, int top, int right, int bottom);
  • setContentsMargins(const QMargins &margins) 

setMargin可以设置左、上、右、下的外边距,设置之后,他们的外边距是相同的。 
setContentsMargins与其功能相同,但是可以将左、上、右、下的外边距设置为不同的值。

2.伸缩空间QSpacerItem--addStretch()

1).居右

在第一个控件之前添加伸缩,这样所有的控件就会居右显示。

QHBoxLayout *pHLayout = newpHLayout;

pHLayout->addStretch();//添加伸缩

pHLayout->addWidget(pButton1);

pHLayout->addWidget(pButton2);


2).居左

在最后一个控件之后添加伸缩,这样所有的控件就会居左显示。

QHBoxLayout*pHLayout=new QHBoxLayout();

pHLayout->addWidget(pButton1);

pHLayout->addWidget(pButton2);

pHLayout->addStretch();// 添加伸缩



3).居中

在第一个控件之前、最后一个控件之后添加伸缩,这样所有的控件就会居中显示。

QHBoxLayout*pHLayout=new QHBoxLayout();

pHLayout->addStretch();// 第一个控件之前添加伸缩

pHLayout->addWidget(pButton1);

pHLayout->addWidget(pButton2);

pHLayout->addStretch();// 最后一个控件之后添加伸缩


4).均分

在每一个控件之间都添加伸缩,这样所有的控件之间的间距都会相同。

3.addwidget

addWidget(QWidget *, int row, int column, Qt::Alignment = 0)

addWidget(QWidget *, int row, int column, int rowSpan, int columnSpan, Qt::Alignment = 0) 

默认的,我们添加控件至水平布局中,默认都是垂直方向居中对齐的

这个单元将从row和column开始,扩展到rowSpan和columnSpan指定的倍数的行和列。如果rowSpan或columnSpan的值为-1,则窗口部件将扩展到布局的底部或者右边边缘处,Qt::Alignment为对齐方式。

QHBoxLayout *pHLayout = new QHBoxLayout();

pHLayout->addStretch();// 水平居左 垂直居上

pHLayout->addWidget(pButton1,0 , Qt::AlignLeft| Qt::AlignTop);

pHLayout->addWidget(pButton2,0 , Qt::AlignLeft| Qt::AlignTop);

pHLayout->addWidget(pButton3);// 水平居左 垂直居下

pHLayout->addWidget(pButton4,0 , Qt::AlignLeft| Qt::AlignBottom);

pHLayout->addWidget(pButton5,0 , Qt::AlignLeft| Qt::AlignBottom);

4).设置间距

  • setSpacing(int spacing)
  • setHorizontalSpacing(int spacing)
  • setVerticalSpacing(int spacing) 

setSpacing()可以同时设置水平、垂直间距,设置之后,水平、垂直间距相同。 
setHorizontalSpacing()、setVerticalSpacing()可以分别设置水平间距、垂直间距。

5).设置行,列大小

  • setRowMinimumHeight(int row, int minSize) 
    设置行最小高度

  • setColumnMinimumWidth(int column, int minSize) 
    设置列最小宽度










  • 3
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GlassySky0816

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值