1.Qt布局的作用

Qt的布局是通过布局管理器来实现的,布局管理器负责在父类窗口部件区域构建子窗口部件,使得放置在窗体中的每个窗口部件都有一个适合的大小和位置,并且能够随着应用程序本身的变化而变化从而达到不改变整体的布局的结构的效果。相对于通过设定绝对位置来搭建界面的方法来讲有如下优点

1.1.父窗口改变的时候,子窗口不能作出相应的调整。

1.2.不用人工计算这些位置和大小

2.Qt中的布局类及继承关系:

QBoxLayout  QHBoxLayout  QVBoxLayout  QGridLayout  QFormLayout  QStackedLayout

继承关系图如下:

QBoxLayout:直线布局,可以规定排序的方向是从左到右还是从右到左,从上到下还是从下到上布局

QHBoxLayout  :水平布局

QVBoxLayout  :垂直布局

QGridLayout  : 将空间划分为若干个行和列,并把子窗口部件放置到划分成的一个个小空间中

QFormLayout :表格布局把布局空间划分为两列,一列一般放标签,另一列一般用于放置LableEdit之类的窗口部件。

QStackedLayout:把一系列窗口部件排列成堆叠的形式,每次只能顶部的部件是可见的。

3.改善布局结构

大小暗示sizeHint在未被重载的情况下,如果该窗口部件属于某个布局管理器,那么返回的值为QT为这个部件推荐的尺寸。如果不属于任何布局管理器的时候返回无效的值

最小大小暗示minimumsizehint :为某个窗口部件提供最小大小的限制。任何小于这个尺寸的窗口都被限制为这个大小

大小策略 QSizePolicy

Fix  不会发生任何的伸缩

minimum  推荐的大小是它的最小尺寸,它不会变得更小,但是可以变得更大

maximum 推荐的大小是它的最大尺寸,不会变得更大

preferred   推荐大小为优先选择,可以变大或者变小

expanding  能够感知到推荐的大小,但是会以尽可能大的空间来放置窗口部件

ignore       不能感知到推荐的大小,会以尽可能大的空间来放置窗口部件

伸缩因子

用于说明在增大窗体的时候,对不同的子窗口部件使用不同的放大比例。通过设置qsizePolicy::horizontalstretch   qsizePolicy::verticalstretch来实现

大小限制

设置窗口的最大大小最小大小,通过sizeConstraint来获取,通过setsizeconstraint来设置

空白和边距

空白指的是整个布局四周距离窗体边缘的距离,间距指的是布局内部各个窗口部件之间的距离

空白设置setcontentmargins,间距设置setspacing

对于栅格布局和表格布局使用的是sethorizonspacing和setverticalspacing来设置。

4.布局管理器的基本操作

向布局中增加部件

向布局中删除部件

取消布局

应用一个布局

http://blog.csdn.net/jimmy2013_1_1/article/details/8598264

Qt 的几个核心机制总结之 布局(QWidget可以设置setSizePolicy,而QSizePolicy有Fixed,minimum,maximum,preferred,expanding,ignore等7个属性,还可以横竖分开)的更多相关文章

  1. 第七章 探秘Qt的核心机制-信号与槽

    第七章 探秘Qt的核心机制-信号与槽 注:要想使用Qt的核心机制信号与槽,就必须在类的私有数据区声明Q_OBJECT宏,然后会有moc编译器负责读取这个宏进行代码转化,从而使Qt这个特有的机制得到使用 ...

  2. Qt核心机制与原理

    转:  https://blog.csdn.net/light_in_dark/article/details/64125085 ★了解Qt和C++的关系 ★掌握Qt的信号/槽机制的原理和使用方法 ★ ...

  3. Qt核心机制和原理

    转:http://blog.csdn.net/light_in_dark/article/details/64125085 ★了解Qt和C++的关系 ★掌握Qt的信号/槽机制的原理和使用方法 ★了解Q ...

  4. qt中信号与槽机制

    一. 简介 就我个人来理解,信号槽机制与Windows下消息机制类似,消息机制是基于回调函数,Qt中用信号与槽来代替函数指针,使程序更安全简洁. 信号和槽机制是 Qt 的核心机制,可以让编程人员将互不 ...

  5. QT的信号与槽机制介绍

      信号与槽作为QT的核心机制在QT编程中有着广泛的应用,本文介绍了信号与槽的一些基本概念.元对象工具以及在实际使用过程中应注意的一些问题. QT是一个跨平台的C++ GUI应用构架,它提供了丰富的窗 ...

  6. Qt 的信号与槽机制介绍(10个要注意的问题)

    QT 是一个跨平台的 C++ GUI 应用构架,它提供了丰富的窗口部件集,具有面向对象.易于扩展.真正的组件编程等特点,更为引人注目的是目前 Linux 上最为流行的 KDE 桌面环境就是建立在 QT ...

  7. Qt 的内部进程通信机制

    Qt 的内部进程通信机制 续欣 (xxin76@hotmail.com), 博士.大学讲师 2004 年 4 月 01 日 Qt 作为一种跨平台的基于 C++ 的 GUI 系统,能够提供给用户构造图形 ...

  8. 【qt】QT 的信号与槽机制

    QT 是一个跨平台的 C++ GUI 应用构架,它提供了丰富的窗口部件集,具有面向对象.易于扩展.真正的组件编程等特点,更为引人注目的是目前 Linux 上最为流行的 KDE 桌面环境就是建立在 QT ...

  9. QT的信号和槽机制简介

    信号与槽作为QT的核心机制在QT编程中有着广泛的应用,本文介绍了信号与槽的一些基本概念.元对象工具以及在实际使用过程中应注意的一些问题. QT是一个跨平台的C++ GUI应用构架,它提供了丰富的窗口部 ...

随机推荐

  1. storm编程指南

    目录 storm编程指南 (一)创建spout (二)创建split-bolt (三)创建wordcount-bolt (四)创建report-bolt (五)创建topo storm编程指南 @(博 ...

  2. Visual Studio中你所不知道的智能感知

    在Visual Studio中的智能感知,相信大家都用过.summary,param,returns这几个相信很多人都用过的吧.那么field,value等等这些呢. 首先在Visual Studio ...

  3. swift学习第九天:可选类型以及应用场景

    可选类型的介绍 注意: 可选类型时swift中较理解的一个知识点 暂时先了解,多利用Xcode的提示来使用 随着学习的深入,慢慢理解其中的原理和好处 概念: 在OC开发中,如果一个变量暂停不使用,可以 ...

  4. WebService--概述、JDk实现、AJAX调用

    一.Webservice概述 W3C组织对其的定义是,它是一个软件系统,为了支持跨网络的机器间相互操作交互而设计. Webservice服务通常被定义为一组模块化的API,它们可以通过网络进行调用,来 ...

  5. php实现用短路求值原理求1+2+3+...+n(短路求值是什么)(仔细分析题干)

    php实现用短路求值原理求1+2+3+...+n(短路求值是什么)(仔细分析题干) 一.总结 1.仔细分析题干,找出要点:该递归还是得递归啊 2.短路求值原理:&&就是逻辑与,逻辑与有 ...

  6. [转载]Ocelot简易教程(四)之请求聚合以及服务发现

    上篇文章给大家讲解了Ocelot的一些特性并对路由进行了详细的介绍,今天呢就大家一起来学习下Ocelot的请求聚合以及服务发现功能.希望能对大家有所帮助. 作者:依乐祝 原文地址:https://ww ...

  7. HDOJ 5001 Walk

    概率DP dp[j][d] 表示不经过i点走d步到j的概率, dp[j][d]=sigma ( dp[k][d-1] * Probability ) ans = sigma ( dp[j][D] ) ...

  8. 检测dll是32/64位?(直接读dll文件包含的某几个字节进行判断)

    检查dll是32位还是64位? #include "stdafx.h" #include <Windows.h> int _tmain(int argc, _TCHAR ...

  9. 小强的HTML5移动开发之路(51)——jquerymobile中改善页面访问速度

    在使用jQuery Mobile进行开发的时候可以选择单页模版和多页模版,在使用单页模版的时候从一个页面跳转到另一个页面的时候需要从服务器请求,用户会感到略有停顿.使用多页模版,可以改善页面跳转之间的 ...

  10. ajax跳转到新的jsp页面(局部刷新)

    ajax可以实现局部刷新页面,即在不刷新整个页面的情况下更新页面的局部信息. 项目中遇到一个问题:在用户列表也,当点击某个按钮时需要去查询用户的信息,查询成功跳转到用户详情界面:查询失败,则在原页面弹 ...