Qt使用的原始界面绘制方案

君子不器

图片引自花瓣:深堀隆介 创意立体树脂金鱼画

思维的定式

一直以来都是使用手动在cpp文件中自定义控件,通过各种Layout控制布局进行界面绘制。
同时对于存在多个QWidget及其相关联的时候就需要分别把对应控件安放到对应的Dialog中,然后通过ManWindow负责转发子QWidget间的消息。从界面功能划分上比较清晰,不过有时候也存在拗口啰嗦。
长久使用下来,一直固话这种方式,突然遇到需要对界面进行改动,比如将A Widget中的控件挪动到B Widget里,然后还需要保证功能的完整。按以前的思路就只有先将控件在B中实现,再添加对应相应函数,如果有需要保存控件内容还需要将内容添加到B的保存函数中,处理起来相当麻烦。
脑筋虽然固化得很,但遇到麻烦时候就想偷懒了,直接将控件在A中传出去,然后再在B中放到B的Layout,然后其他都不用迁移。关于该控件的一切仍然在A中完成。达到了控件迁移的效果。

QLineEdit *getOptionEdit() { return mopLetEdit; }

此Docker非彼Docker

也就是说,其实可以先建立一个控件的容器,里面包含大多控件的定义以及事件处理,然后将各个控件分发到不同的页面里面实现不同的Tab之类的效果。这样简化编码,同时易于在业务变更时候调整界面设计。不过缺点就是容器类会比较庞杂,同时代码量大。控件间没有因页面设计而达到分离。
优缺点都有,不过突破了自己固有的谁的页面就负责谁的控件思维还是很有趣的。

Docker
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 6,761评论 0 17
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,786评论 25 709
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,303评论 4 61
  • 关上门,就是两个世界,门里跟门外。 一个年岁的大门,悄悄的,在我身后关了起来,茫茫然不知所措的,到了五号。 没在意...
    陈林旧阅读 177评论 2 0