首页 > 其他 > 详细

Qt布局

时间:2016-05-22 06:06:25      阅读:217      评论: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
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!