首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > QT开发 >

Qt 四布局管理经验总结

2013-01-02 
Qt 4布局管理经验总结看到几个论坛里面都不断有朋友问到布局的相关问题,我就把自己总结的经验介绍一下,看

Qt 4布局管理经验总结
看到几个论坛里面都不断有朋友问到布局的相关问题,我就把自己总结的经验介绍一下,看看对大家有没有帮助。大家有更好的经验和方法,也请补充。

好了,到了现在,是时候为布局管理这个话题做一下总结了。

在大多数情况下,Qt 的布局管理器将为管理的窗口部件选择最优尺寸,以便窗口可以顺利的重新调整大小。如果默认值不合理,那么我们可以使用以下方法优化布局:

1. 为某些子窗口部件设置最小尺寸、最大尺寸或固定尺寸

2. 添加伸缩项目(stretch)或间距项目

这些项目将填补布局中的空白区域。手写代码即是调用addStretch(),在Qt Designer中则是通过添加一个spacer窗口部件来实现。

3. 更改子窗口部件的大小策略

通过调用 QWidget::setSizePolicy(),编程人员可以采用最优的方式重新设置子窗口部件的尺寸变化行为。可以根据布局中其他子窗口部件来扩大、缩小子窗口部件,或者使其尺寸不变。

4. 更改子窗口部件的大小提示

QWidget::sizeHint() 和 QWidget::minimumSizeHint() 可以根据窗口部件的内容返回其首选尺寸和首选最小尺寸。Qt内建的窗口部件已经相应的提供了合适的实现。

5. 设置伸缩因子

伸缩因子支持子窗口部件的相对增长;例如,将 2/3 的任何多余的可用空间分配给 A 窗口部件,将 1/3 的空间分配给 B 窗口部件,这将使得两者的比例保持在2:1的比例上。

6.设置被布局管理的窗口部件之间的“间距”和整个布局周围的“空白”

默认情况下,Qt使用与上下文相关的行业标准值。

7.自定义布局管理器

当Qt内建的这些布局管理器都不能很好的满足你的需要时,就可以考虑自定义布局管理器。当然根据我的经验,这种情况是比较少见的。

8.各种布局方法综合使用

在有些情况下,可以将绝对位置法、人工布局法与布局管理器结合使用,往往会收到很好的效果。

当布局管理器在摆放这些窗口部件的时候,它就会考虑到上面讲到的这些约束条件。并且如果这些还不满足你的要求的话,就可以对子窗口部件的类进行派生并且重新实现sizeHint()函数,由此获得所需的大小提示。


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/qter_wd007/archive/2010/03/13/5377809.aspx
[解决办法]
哈哈,一天一贴,最近JAVA的LayOut差点把我愁死,不得不固定大小然后用绝对位置。
Qt的Layout真是很讨人喜欢,也非常实用
[解决办法]
我正需要哈~
[解决办法]
呵呵,又见兄台发帖了,这个要顶啊
Qt中的布局管理器确实是让人省了很多事,这方面很人性化~
[解决办法]
还是有很多不方便的地方
[解决办法]
推荐使用Layout,忘掉MFC中的按坐标位置的做法吧,虽然Qt也支持。
[解决办法]

引用:
这个确实是吸引我的一个地方,根据我的体会,在MFC中要对一个界面实现理想的布局,一般是要写好多代码的,并且要结合具体的计算。

还有就是可伸缩的对话框,在MFC中的实现虽然也已经成熟了,但还是比较费力气的;而Qt4中就简单的多。

MFC毕竟是沿用很多年前的东西了,而我喜欢上Qt的地方就是它在界面编程方面的人性化,相比MFC在界面开发方面节省了很多时间和代码,即使加上手工计算也比MFC省事多了,呵呵
[解决办法]
引用:
哈哈,一天一贴,最近JAVA的LayOut差点把我愁死,不得不固定大小然后用绝对位置。
Qt的Layout真是很讨人喜欢,也非常实用


用java 很少用layout  都是固定位置 
用qt   也很少用layout  

都没写过什么很复杂的gui程序

qt的layout很不是熟悉
所以这帖对我来说很有用

大侠也可以发博 谈谈 qt layout嘛


[解决办法]
layout就是wx中的sizer啊!
以前用wx,感觉这个东西不是很新鲜

热点排行