Chinaunix首页 | 论坛 | 博客
  • 博客访问: 148152
  • 博文数量: 43
  • 博客积分: 3000
  • 博客等级: 中校
  • 技术积分: 601
  • 用 户 组: 普通用户
  • 注册时间: 2010-11-22 17:24
文章分类
文章存档

2010年(43)

我的朋友

分类: LINUX

2010-11-22 17:52:28

 
QT布局的关键字QGridLayout(网格布局),QBoxLayout分为水平布局(QHboxLayout)和垂直布局(QVBoxLayout),这三种布局是最常用的,通常配合起来使用的还有弹簧,在布局中关键是要注意到代码中这个button或者label在矩阵中所处的位置和跨度!
比如上面这段代码,表示的是textedit在整个窗口中所占的位置,开始的2表示是第二排,第一列(都是从0开始计算),后面的2和1分别表示的是跨度,跨度就是在同一单位的基础上多占居的空间,用下面的表格来说明一下布局的代码表示,数字一样的表示是同一个东西。
 11  22  22
 33  33  33
 33  33  33

11则可以表示为(0,0,1,1),22表示为(0,1,1,2),33表示为(1,0,2,3),前面的两个位表示在矩阵中的位置,后面的两位就表示跨度,11就只占了自己的地方,所以跨度就是1和1,22跨度在横向还是1,纵向是2,所以为1和2,33的横向跨度为2,表示横向占了两排,纵向是3,表示纵向占了三列,所以为2和3.

下面是函数的原型

 
几个大小策略的说明(在布局的时候)
fixed    固定的,表示布局的时候大小无法修改 
minimun  表示无法再被压缩,可以扩大
maximum  表示无法再扩大,但是可以被压缩
preferred  有空间没有人要的空间的时候才回去会占领
expandin  表示趋向于占领空窗口的空间,能挤压别人的空间就去挤压
minimumexpanding  表示自己无法变小,只能向外扩张
 
 
几个注意的点:
1.在对窗口加载布局的时候,并不是把所有的对象括起来布局就可以了,这样韩式对对象进行布局,而不是对整个窗口进行布局,而是应该选中空白的地方,在没有选中任何对象的前提下布局
2.布局中的对象大小,是相互影响的,应该灵活的运用弹簧,网格布局和跨度的结合,特别是跨度,因为在UI中没有具体的体现,比如,一两个个窗口虽然占得地方可以是一样的,但是他们的起始坐标可能是不一样的,跨度可能也是不一样的,大小策略也是不一样的!
3.记得窗口这个小练习中没有使用侧面的弹簧,同样可以把两面的label和button顶起来,主要运用的就是跨度的思想,关键是几个拖拽的点,需要把中间的第三行大段空白的textedit托到和查找同一行上,即让他的跨度达到这一行
(这段自己看都很抽象,做个练习体会)
 
 
 
 
 
 
 
阅读(1352) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:博客说明(读我)

给主人留下些什么吧!~~