因为用Qt Creater的可视化工具(Qt设计器)来设计界面不够灵活,所以喜欢用代码进行布局。但是当界面比较复杂时,需要用到很多层次的布局管理器,相当繁琐。比如,下面这个不算太复杂的界面
就已经用了三个布局管理器,而如果第三层的每个控件都要对其中的控件布局时,就还要再用五个布局管理器,实在是头痛。如果界面更复杂,情况就更糟糕了。希望大家有好的方法和经验分享一下。当然,这里排除不要布局而固定控件尺寸和位置的方案。
先谢了!
------最佳解决方案--------------------
真搞不明白,为什么不用designer?所见即所得的设计方式会让你的效率提高很多,如果你的界面非常简单,用代码写也就罢了。如果你的界面很复杂,就像楼主这样(其实楼主的界面并不算复杂的),你不用designer去做只能说明你有自虐倾向。
其实,按照理想的情况,Designer并不是给开发者用的,它是给设计师用的。这也正是Qt所大力提倡的一种协同工作方式。
在产品设计之初,开发者和设计者通过Designer描绘出产品的原型。这主要包括界面上有哪些控件、它们的名字和一些行为属性等等。它可能很丑,但没关系,只要确定了类型和名字,开发者就可以去编写代码实现逻辑部分了,而设计者仍然会在Designer中,对界面进行美化,他会帮你设置布局、确定每个控件的理想位置和大小、并使用QSS对界面元素进行渲染。
等双方的工作都完成了,那么几乎不需要任何修改,一个漂亮的界面就产生了。
即使是在人员有限的小团队里,开发者按照这种方式,一人分饰两角,也会大幅度提高工作效率。因为,用代码手工写出的界面,就算不考虑它的时间成本,只要界面风格稍作调整,对开发者来说都可能需要数小时的时间来更换,并且还要完成调试。
有些人之所以不用Designer,无非两种情况,
一,他觉得用代码手写貌似更有水平。
二,他对desinger的使用并不熟悉,认为有些功能designer做不到。
对于第一种认识,这很滑稽,你用手写代码并不能表示你的水平有多高,相反只能说明你经验太少
对于第二种认识,并不排除有些东西designer做不到,但这和手写代码并不冲突,你仍然可以在cpp里去写你的代码。
罗嗦了这么多,还是希望看到这个帖子的人都能够理解Qt一直以来的核心思想:“少编程,多创造”。
------其他解决方案--------------------
其实Qt的布局管理器已经非常好用了,无论手工写代码还是Designer,像LZ所说的复杂情况没问题的,只要理解了嵌套多少层、用多少个布局管理器都没问题
本人工作中时常嵌套3,4层的,布局管理器几个以上都不是问题,唯熟尔
------其他解决方案--------------------
QtDesigner还是很好用的。 为啥不好用呢?如果你没想到某个地方要放什么空间。可以拖个widget放着占位置。
然后在代码里面把自己要放的控件放到拖入的widget里。。
------其他解决方案--------------------
推荐手工写代码,Layout还是很好用的,多层的情况也很常见,放心用,个人感觉不太推荐designer的
------其他解决方案--------------------
像楼主的情况,使用现成的控件,Qt Creater的可视化工具(Qt设计器)绝对是好用的。
2分钟就能干完的活,手写至少10分钟。
如果是自制的控件,只能用手写。
------其他解决方案--------------------
Designer很好用啊
------其他解决方案--------------------
非常感谢各位!很有收益。诚如xiachm所说,之前认识上有会误区。的确学习Qt时,理念Qt的设计理念和思想非常重要。