码迷,mamicode.com
首页 > 其他好文 > 详细

Qt布局

时间:2016-05-22 06:07:11      阅读:215      评论:0      收藏:0      [点我收藏+]

标签:

  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);

 

Qt布局

标签:

原文地址:http://www.cnblogs.com/pingfandfy/p/5516005.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!