Digger们使用QtDesigner设计ui时的原则

【这个文章永远没有完结,digger们请将更好的原则添加进来,如果有Conflict就增加更多的comments】

 

==编写格式==

每个人各自写自己的部分,苍松已经写好了。

如果你想写comments,就在每条下面写,然后记得写by谁~

 

 

==苍松的箴言==(哈哈,这个词用的过了~)

1. 如果不想让ui变得太难调,就尽量少在C++代码里设置widget们得各种属性,ui文件里设置就可以了

2. 如果设置一些属性就先考虑一下,这个属性在这个页面,或者整个应用上有没有什么共同性,如果有,就在更加上层的页面设置。

譬如,这个应用的绝大部门文字都是黑的,那就在最上层设置color:black;

3. promote一个widget是个好习惯,不要总用C++代码产生一些ui,这样不好维护。

4. 有时spacer,那个弹簧不是非常听话,这时放个QWidget也许更好,因为他有各种sizePolicy和最大最小size。

5. 如果不需要为一个widget设置stretch,那他的stretch最好为0,如果想最大化一个widget,让他占满剩下的所有空间,其他为0,他可以直接为1.

6. QStackedWidget也是可以通过designer设置page的,别蛋疼的去写cpp了

7. 如果一个widget的有父亲,但是这个widget没有add到一个layout里面,那么这个widget就会游离,这个是个设置悬浮widget的技巧。

8. stylesheet里面background-image比起border-image有更好的性能,因为该死的border-image默认要算缩放。

9. 如果你有需求给一个scrollarea或者任何相关的子类设置背景,那么你可以考虑在他父亲那里设置,要不用border-image,他会算死。

10. 可重用的widget最好单拿出来设计成一个ui文件。

11. 单拿出来的ui文件就算有配套的cpp和h,也是可以单拿出来重用的,你可以在另一个工程里包含这个ui,然后自己创建类似的新cpp和h,他们一样可以用,无缝的。

12. QFrame子类们有可能有边框,设置成NoFrame就没了

13. 我喜欢把按钮槽什么的直接用designer生成

14. 再说吧~心情挺好,收拾收拾屋子

====Wilbur====

1. background-image的显示效率高,是因为他不用随控件resize。所以要让背景图显示完整,还是用border-image。

2. stylesheet的设定,一般、最好是指定object name或者是它应该影响的控件。因为父控件的样式会被子控件继承。如果某控件样式上出了问题:1)检查父控件是否设置了stylesheet,2)代码里有没有哪些地方设置了stylesheet,3)哪个控件设定样式表的时候没有指定object name或者控件类型。

3. 说个layout的。如果一个layout里包含了两个控件,但是分别在不同条件下显示。show一个widget前一定要让另外的widget先hide,也就是说先让整个layout里所有控件先hide、后show指定的控件。否则,如果让所有控件先show、然后hide不需要的控件,很可能整个layout就缩不回来了。

4. 强调一下: 自己的代码里尽量别写跟layout相关的、跟样式相关的代码,否则很可能成为一个很具有挑战性的BUG。

5. 尽量用layout去规范控件在 resize event时的行为和大小,代码里最好不要重载QEvent::resizeEvent,因为带有layout的组合控件可能会接收到多次resizeEvent。造成的影响:1)频繁处理resize event,页面显示效率低;2)如果在重载的resize event里做了些显示相关的处理,很可能影响到显示的内容;3)因为无法区分多次的resize event的来源,可能是因为横竖屏切换导致的整个window的resize,也可能是因为某个widet的resize导致的(想想这个理由不太成立)

5. 未完待续.......

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值