Qt 布局管理器

4 篇文章 0 订阅

布局管理器是qt提供的一种自动完成窗体布局的工具,减少我们的工作量并且很美观!


基本的布局管理器有四种:Horizontal, Vertical, Grid, 和Form 布局管理器。这些在前面的例子都能看到是如何使用的。Qt的帮助文档里也有一个专门讲他们的例子:Basic Layouts QHBoxLayout, QVBoxLayout, QGridLayout,和QFormLayout 都继承自QLayoutLayouts通过调用addWidget或者addRow将窗口部件加入进去,QWidget及其子类都有一个setLayout的成员函数,可以将我们的布局管理器设置进去,这样就完成了布局。


 经常要用到的三个布局部件 QHBoxLayout水平布局 QVBoxLayout垂直布局 QGridLayout表格布局   

QHBoxLayout和QVBoxLayout用法 基本相同: 
vlayout->addWidget(w1); vlayout->addWidget(w2); …… 
QGridLayout用法 
layout->addWidget(widget,row,column,rowSpan,columnSpan); 

layout->addLayout(layout,row,column,rowSpan,columnSpan);

(row,column):控件占据左上角的单元格位置 rowSpan:控件占据的行数 
columnSpan:控件占据的列数(不写默认为1) 控件随窗体伸缩 将布局与主窗体建立联系 layout=new QHBoxLayout(this); 

或者this->setLayout(layout); 
layout->addStretch();

可伸缩的空间 
layout->setAlignment(Qt::AlignHCenter);//布局内控件水平居中 

 layout->setSpacing(10);//控件间隔为10 

layout->setMargin(10);//页边距为10 

Qt设计器中spacer控件 以上在对控件位置调整时常用 

结合SizePolicy属性控制布局管理中的控件的尺寸自适应方式 也就是控件随主窗体伸缩方式(可自行增大或缩小) 
QSizePolicy sizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);//可自行增大和收缩 
Fixed:不能放大或缩小 
Minimum:不能小于sizeHint尺寸,可放大(若设置了最大尺寸) 
Maximum:不能放大,可缩小到允许的最小尺寸(若setMinimumSize(10,10)只能缩小到(10,10)) 
Preferred:控件的sizeHint是他的Hint,可以放大或缩小   
比例因子的使用 
例:布局中有左右两控件,右边比左边水平伸缩2倍 sizePolicy.setHorizontalStretch(1); sizePolicy.setVerticalStretch(0); left->setSizePolicy(sizePolicy); 
sizePolicy.setHorizontalStretch(2); sizePolicy.setVerticalStretch(0); left->setSizePolicy(sizePolicy);   
水平伸展比例(1,2) 垂直伸展比例(0,0) 
布局顾名思义是对控件的位置的整体规划,每个控件之间都存在着位置关系,所以改变控件(移动、关闭)会破坏布局 
结论:两种方法结合使用,应该可以应对大部分界面布局


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值