QML程序架构设计(一)
来源:互联网 发布:系统之家数据恢复 编辑:程序博客网 时间:2024/06/06 09:41
在写qml程序时,遇到一种bug,子视图覆盖在父视图之上显示,但是还可以点击到父视图的内容,从而使程序紊乱,出现这个问题,就与程序的架构设计有关,如果设计不合理,即会出现这个问题,修改起来也是很麻烦。
先上一个出现上述问题的例程:
(晚上续写)
一转眼,两周过去了,终于抽了个时间来写这篇文章,到现在还能记得起来的,才是真正记住的吧。
回到上面的问题,在一个qml界面中,有一个父界面,当达到条件,子界面覆盖父界面显示,但是父界面却并不能将visiable设置为false,因为父界面还有一部分在显示,是配合子界面的,一般的程序思路是这样的(我一开始也是这样写的)
Rectangle{//父界面 Rectangle{//子界面 Rectangle{//孙子界面 } } MouseAera{ }}
这种情况下,父界面的MouseArea会将子界面的鼠标事件截断,导致子界面的点击事件失效。
方法一:
为了避免这种尴尬,我们可以将将嵌套式构建更改为并行构建,例如
Rectangle{}//父界面Rectangle{}//子界面Rectangle{}//孙子界面这样在父界面中做屏蔽鼠标事件就不会影响到子界面和其他界面了。
方法二:
使用状态机,将各个界面通过状态来切换,在状态机中切换也是一个不错的,为此专门研究状态机研究了一个下午。具体状态机的使用请参考:(文章还没有发布,发布将链接贴上来)。
最后谈谈对架构的理解,因为最近一段时间一直在对自己之前写的程序改bug,改的过程中,发现有好多程序的设计都不好(当时写的时候肯定没觉得啦),就有了另外一中构建方法,比原来的构建要更加清晰,思路完善,代码长度也会减少,这是一中进步,而这新的构建,就是对架构的一中理解的提升。文章记录的更重要的思路,具体的代码实现没有贴出来。每个人都会有不同的理解吧。
阅读全文
0 0
- QML程序架构设计(一)
- QML程序架构设计(二)状态机应用
- 程序架构(一)
- qml+opencv(一)
- Springboot架构设计(一)
- 架构设计(一)架构设计之常用信息格式
- Qt5与QML(一)
- QML插件扩展(一)
- QML小结1-(一个简单的qml程序)
- QML小结1-(一个简单的qml程序)
- QML之使用C++自定义QML类型(一)
- 品《软件架构设计》(一)
- petshop4.0 (一)系统架构设计
- .NET初学者架构设计指南(一)
- 《软件架构设计》读书笔记(一)
- Extjs4 应用架构设计(一)
- ExtJS 4应用架构设计 (一)
- Java爬虫框架(一)--架构设计
- 生成标签的工具
- angular-cli
- 线索二叉树的生成及遍历
- 垂直居中
- poi,jxl读取excel文件
- QML程序架构设计(一)
- 使用 IDEA + Maven + Git 快速开发 Web 应用
- linux 服务管理
- 中国服务机器人企业细分领域
- 有这么一种茶几,它带着触摸屏!
- Hibernate(四):Hibernate的初始化,增删改查等方法
- 剑指offer——斐波那契数列
- 关于C++里面使用set_union,set_intersection等函数的使用总结
- poj1511 spfa