Qt布局

  Qt有很多种方法来排列构件的位置和布局,可以通过setGeometry来设置绝对坐标,但其存在很大的缺陷,因为当调整窗口大小时,构件不会做相应地调整来适应窗口。

  排列构件的首先方法是使用QLayout类和Box构件,在你给出构件的边距值和构件间的间距值后,他们会根据情况自动调整大小。QLayout类和Box构件之间的主要不同是:布局对象不是构件。布局类派生自QObject而不是QWidget,因此你在使用它时受到一些限制。与布局类相反,Box构件派生自QWidget,因此你可以把他们看作为普通的构件。

  QLayout的自雷QVBoxLayout和QHBoxLayout是创建界面最常用到的方法,QVBoxLayout和AHBoxLayout都是不可见的容器对象,他们分别以垂直和水平方向包含其他构件和布局。

  下面3个QVBoxLayout构造函数(QHBoxLayout有相似的API)

QVBoxLayout::QVBoxLayout(QWidget *parent,int margin, int spacing, const char *name);
QVBoxLayout::QVBoxLayout(QLayout *parentLayout, int spacing, const char *name);
QVBoxLayout::QVBoxLayout(int spacing, const char *name);

  QLayout的parent参数可以是一个构件或是另一个QLayout,如果没有制定parent,那么你以后只能通过addLayout方法把这个布局加到另一个QLayout中去。margin和spacing设置围绕在QLayout四周的编剧和构建见得间隔的像素值。

  一旦构建QLayout对象,可以用下面两种方法分别添加子构件和布局。

QBoxLayout::addWidget(QWidget *widget,int stretch = 0,int alignment = 0);
QBoxLayout::addLayout(QLayout *layout,int stretch = 0);
时间: 2024-08-27 02:49:30

Qt布局的相关文章

QT开发(二十一)——QT布局管理器

QT开发(二十一)--QT布局管理器 一.布局管理器简介 QT中使用绝对定位的布局方式无法自适应窗口的变化. QT中提供了对界面组件进行布局管理的类,用于对界面组件进行管理,能够自动排列窗口中的界面组件,窗口大小变化后自动更新界面组件的大小. QLayout是QT中布局管理器的抽象基类,通过对QLayout的继承,实现了功能各异且互补的布局管理器. 布局管理器不是界面组件,而是界面组件的定位策略. 任意容器类型的组件都可以指定布局管理器. 同一个布局管理器管理中的组件拥有相同的父组件,在设置布局

Qt布局管理器的使用(二)

 Qt布局管理器的使用(二) 前面博文(http://blog.csdn.net/u013704336/article/details/38960353)讲解了手动布局的基本思路,今天说下用代码怎样进行一些常用的简单布局. 首先,心中要规划好,自己要实现的模块的分布可以事先在纸上进行大致的绘制,然后心中就有了大致的轮廓. 今天就按照上次讲的,实现那个录入商品信息的布局吧.如下图所示: 仔细观察,就可以发现这个布局的思想.基本都是水平布局,然后再将各自布局进行垂直布局,好了,说了这么多废话,直接上

qt 布局

说到qt布局,比起之前用的MFC好了许多,而且qt支持qss,可以更好的美化界面.qt提供了几种常见的布局管理 窗体布局,这对客户端程序来说是一个福音,再也不用操心程序界面放大缩小时界面控件怎么变化,只需要把界面控件加入到qt布局中,布局会帮助我们按照一定的规则设置界面子控件. 随着业务需求的变化,有一天出现了一个特殊的widget,加载一个地图,在地图上显示多个小的窗口,此时我就知道,qt的布局不管用啦,但是也不用担 心,qt的布局只是给我们一个建议的方式去显示子控件,抛开qt的布局,我们完全

Qt布局管理器(详解)

1.存在的问题 (1)目前的GUI开发方式:绝对定位 --直接在像素级指定各个组件的位置和大小 void QWidget::move(int x, int y) void QWidget::resize(int w, int h) (2)问题 --组件位置和大小无法自适应父窗口的变化 2.布局管理器 (1)解决方案:布局管理器 --提供相关的类对界面组件进行布局管理 @1:能够自动排列窗口中的界面组件 @2:窗口变化后自动更新界面组件的大小 (2)QLayout是Qt中布局管理器的抽象基类 (3

Qt布局管理器综合实例

1.布局管理器的综合实例------模拟向导用户界面(Windows平台) -----练习开发一个向导用户界面 @1:在同一界面上展现不同的向导页面 @2:通过上一步和下一步按钮进行切换 @3:不同页面上的元素组件和这些组件排布都不相同 @4:页面中的组件通过布局管理进行排布 (1)通过布局嵌套进行界面设计 @1:上一步和下一步这两个按钮用水平布局管理器QHBoxLayout来进行管理,不同页面上的显示的内容只有按钮不变,所以讲不同页面的内容用栈式布局管理器QStackedLayout进行管理,

浅谈qt 布局器

在一个颜值当道的今天,无论买衣服,买车还是追星,颜值的高低已经变成了大家最看重的(不管男性女性都一样,千万别和我说你不是):而对于程序猿来说,开发一款软件,不再只注重逻辑和稳定性,美观和用户友好性也是我们不得不关注的一个重点了. 我们进入正题,今天主要和大家分享一下Qt方面关于布局管理器的使用: 一.基本概念   Qt 提供了几种在窗口部件上管理子窗口部件的基本方式.一共有3 种方法用于管理窗体上子窗口部件的布局:绝对位置法.人工布局法和布局管理器法.相比于使用固定尺寸和位置,布局提供了功能强大

Qt布局与分割器QSplitter

Qt的布局方式主要有四种: QGridLayout         栅格布局 QFormLayout       表格布局 QHBoxLayout       水平布局 QVBoxLayout       垂直布局 然而,只通过以上四种布局的组合似乎不太好用, 因此需要搭配分割器QSplitter, 在QSplitter中实现局部布局,最后再放进主布局中可以实现非常好的效果. /* *********************************************************

Qt 布局管理器

在一个颜值当道的今天,无论买衣服,买车还是追星,颜值的高低已经变成了大家最看重的(不管男性女性都一样,千万别和我说你不是):而对于程序猿来说,开发一款软件,不再只注重逻辑和稳定性,美观和用户友好性也是我们不得不关注的一个重点了. 我们进入正题,今天主要和大家分享一下Qt方面关于布局管理器的使用: 一.基本概念   Qt 提供了几种在窗口部件上管理子窗口部件的基本方式.一共有3 种方法用于管理窗体上子窗口部件的布局:绝对位置法.人工布局法和布局管理器法.相比于使用固定尺寸和位置,布局提供了功能强大

Qt布局管理器

1.Qt提供的布局类以及他们之间的继承关系(如下图): Qt 常用的layout 有QHBoxLayout.QVBoxLayout.QGridLayout 常用的方法有addWidget()和addLayout().addWidget()用于在布局中插入控件,addLayout()用于在布局中插入子布局. 在布局管理中还常用到setMargin()用于设定边距,setSpacing()用于设定控件间距. setColumnStretch()用于设置列的占空比. QFormLayou null