Qt布局管理
原地址:http://blog.csdn.net/lastsoup/article/details/7028243
设计软件中各个部件的位置排列,有两种方法:
1.设置widget的在父窗体中的坐标和大小
widget->move(x,y);
widget->resize(width,height);
//widget->setGeometry(QRect(x,y,width,height));
什么时候用:不想被布局约束,对这种控件可控制时
例如下面的可活动按钮

缺点:在遇到很多个部件时,一个个算坐标会很麻烦
部件不自动随父窗体的变化而变化(这里要重写resizeEvent事件算变化比例建立父子窗体之间的联系,而布局很容易做到)
2.布局管理Layout(可控制的部件不要使用布局中,一旦改变会影响到整体布局)
经常要用到的三个布局部件
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)
——————————————————————————————————————————————————
布局顾名思义是对控件的位置的整体规划,每个控件之间都存在着位置关系,所以改变控件(移动、关闭)会破坏布局
——————————————————————————————————————————————————
结论:两种方法结合使用,应该可以应对大部分界面布局
本人是菜鸟,实践不多,如有错误欢迎指正
—————————————————————————————————————————————————
上述代码是为了理解布局使用,Qt设计器可实现
Qt布局管理的更多相关文章
- 第六章 Qt布局管理器Layout
第六章 Qt布局管理器Layout 大家有没有发现一个现象,我们放置一个组件,给组件最原始的定位是给出这个控件的坐标和宽高值,这样Qt就知道这个组件的位置.当用户改变窗口的大小,组件还静静地呆在原来的 ...
- 初识Qt布局管理器
Qt布局管理器的类有4种,它们分别为QHBoxLayout.QVBoxLayout.QGridLayout和QStackLayout.其中,QHBoxLayout实现水平布局,QVBoxLayout实 ...
- Qt——布局管理器
教程地址 运行截图: 代码: #include "mainwindow.h" #include <QApplication> #include <QHBoxLay ...
- Qt 布局管理器
在一个颜值当道的今天,无论买衣服,买车还是追星,颜值的高低已经变成了大家最看重的(不管男性女性都一样,千万别和我说你不是):而对于程序猿来说,开发一款软件,不再只注重逻辑和稳定性,美观和用户友好性也是 ...
- Qt布局管理器的使用(一)
曾经对Qt的布局管理器掌握的还不清楚,今天特意学习了下.感觉收获还挺大的,特意拿出来和大家分享. 首先.要明确布局管理器的用处,及使我们的界面看起来比較整洁.美化.另外一点就是为了使我们的控件可以更随 ...
- QT5每日一学(五)QT布局管理器
Qt中的布局管理器主要包括 QBoxLayout基本布局管理器 QGridLayout栅格布局管理器 QFormLayout窗体布局管理器 而基本布局管理器又分为QHBoxLayout水平布局管理器和 ...
- QT 布局管理器的使用
很多的时候,需要布局管理器的使用, 在此介绍一下布局管理器的使用,直接上代码 #include "widget.h" #include "ui_widget.h" ...
- qt布局管理-缩放、多窗口切换
关于缩放的布局 所有控件要求与主窗口同时缩放,那么在所有控件设置好布局后,最后点击最外侧的主控件,选择水平布局或者垂直布局即可. 另外每个空间的属性可更改,如SizePolicy用于设置空间是否可缩放 ...
- Qt 布局管理
在布局编辑环境里: sizePolicy 影响控件在布局上的大小. layout 的属性 如:如margin 设置控件在布局上边距. 有时候需要设置 下面是一个 代码布局的方式 #include &q ...
随机推荐
- codility上的练习 (1)
codility上面添加了教程.目前只有lesson 1,讲复杂度的……里面有几个题, 目前感觉题库的题简单. tasks: Frog-Jmp: 一只青蛙,要从X跳到Y或者大于等于Y的地方,每次跳的距 ...
- android Graphics(一):概述及基本几何图形绘制
前言:我最近想抽空研究研究android的各种特效,android的特效真是其它平台无法比拟的,而且一个漂亮的UI交互,会给APP增色不少,而学习特效之前,有关graphics绘图的基础知识是必不可少 ...
- [Swust OJ 1126]--神奇的矩阵(BFS,预处理,打表)
题目链接:http://acm.swust.edu.cn/problem/1126/ Time limit(ms): 1000 Memory limit(kb): 65535 上一周里,患有XX症的哈 ...
- BZOJ 2101: [Usaco2010 Dec]Treasure Chest 藏宝箱( dp )
dp( l , r ) = sum( l , r ) - min( dp( l + 1 , r ) , dp( l , r - 1 ) ) 被卡空间....我们可以发现 l > r 是无意义的 ...
- 利用phpmailer类邮件发送
<?php require("class.phpmailer.php"); //下载的文件必须放在该文件所在目录 $mail = new PHPMailer(); //建立邮 ...
- tomcat虚拟主机虚拟目录配置
今天着实要记上一笔,需要配置tomcat虚拟目录的问题 一 首先看两个名词 appBase -- 顾名思义 就是你app所在的目录,目录下面的子目录将自动被部署为应用:war被解压并部署 docBas ...
- mong 备份和恢复
[root@hy-mrz01 bin]# ./mongofiles list -h114.55.5.57 -db pics 20160602152850deeabcb1bd2644afa0c3a9a8 ...
- android大牛高焕堂最新力作-android架构师之路
android大牛高焕堂 个人介绍: Android专家顾问,台湾Android论坛主席,现任亚太地区Android技术大会主席,台湾Android领域框架开发联盟总架构师.发表100多篇Androi ...
- 上证A股股指跌破1900
上证A股股指跌破1900 有钱的同学赶紧买哦,机会难得哈哈!
- CSS基础3——使用CSS格式化元素内容的字体
1.CSS属性单位: (1)长度单位:包含绝对长度单位和相对长度单位 绝对长度单位包含:cm.mm.in.pt.pc等. 绝对长度单位最好用于打印输出设备.在仅作为频幕显示时.绝对长度值并没有什么意义 ...