Qt学习笔记,Qt程序架构设计要旨


时间过得很快,转眼学习Qt已经有一个多月了,对Qt的学习也在不断的深入中。自己手下的code也很多了,不过不得不说,还有很多的部分没有接触过,比如网络编程,2D,3D等等,但这些会在接下来的工作里不断的接触和深入。现在学习Qt的心得就是:不要以为自己可以coding,就是对Qt的掌握!这个是严重错误的看法,现在会写出code了也只能说你入门了。对于Qt的学习需要不断坚持不断实践。而要说真正的掌握Qt,那么对于Qt的核心那是必须要掌握的!那么什么才是Qt的核心呢?这一个多月的了解,不得不说Qt的Model/View 机制,就是Qt的核心所在。

当然,Qt本身为我们提供的可以使用的Model很多了,View也有很多。但是,事实就是不尽如意,也就是说Qt提供的不一定就一定可以满足我们的实际需求的,所以更多的是在Qt库提供本质的基础之上我们的再造。

所谓再造就是在已有的系统库的基础上加入我们自己的部分。其实,Model就是一个数据的加工厂,对于来自外界的数据进行加工,加工之后的数据利于我们与使用这个model的view的包装。但是,难点就是在于这个Model中自己定义实现的数据加工部分,也正因为这对Qt的Model/View 学习添加了很大的难度。

其实在做Qt程序过程中应该考虑很多的,这与常规的软件开发没有任何特别之处,我这里大致罗列一下:

1、我们是做软件的,那么对软件的执行效率这个是必要考虑的,对于用户的不同(用户的软件工作环境),我们要考虑到很多的软件执行效率的限制条件。

2、在软件编码中,在考虑软件的执行效率的基础之上,我们在实际编码中应该如何做。

3、对于开发的软件,要考虑到后天的维护和系统的升级

正式,设计模式中的:软件的移植,软件的扩展,软件的复用

下面在说说对于上面给出的没一点的个人看法:

对于1和2:记得初中学政治的时候,说道——环境,谁污染,谁治理。对了系统资源(硬件,软件)也是如此,对于硬件资源,与效率相关的那就是内存了,软件那就是我们开发的软件与操作系统的协作关系了。在软件开发编码过程中一定要牢记,向系统申请的资源一定要按时归还。对于有众多模块的程序,比如有很多的窗体,我们在其中的一个窗体模块中只需要获取她的数据,其他都不需要,那么我们就可以在某一个需要此模块的地方申请一定资源用于这个模块,并将她的数据取出,用完了再将她使用的资源释放掉。

(此文部分已部分作者本义,因为原始版本不小心操作以及丢失,部分内容不完整,但是作者心意,若新得,必分享)



转载于:https://www.cnblogs.com/Podevor/archive/2011/09/30/2788026.html

Qt学习笔记,Qt程序架构设计要旨相关推荐

  1. C++ Qt学习笔记 (1) 简易计算器设计

    最近开始学习c++ qt, 按照教材上的例程设计一个简易的桌面计算器: Qt是一个基于C++语言的跨平台应用程序和UI开发框架,主要包含一个类库,和跨平台开发及国际化的工具,最初由挪威的Trollte ...

  2. Qt学习笔记-----Model/View架构

    为了实现数据的存储和表现分离,Qt提供了Model/View架构,包括三个部分,分别是模型(Model),视图(View),委托(delegate). Model用于访问底层数据,也就是说为其他组件访 ...

  3. Qt学习笔记-----Model/View架构之自定义Model

    Model/View Framework中提供了模型model的抽象基类QAbstractItemModel, 如果需要自定义模型就需要继承这个类并且实现一些必要的函数. 此外,Qt中又提供了QAbs ...

  4. Qt学习笔记-Qt5程序开机自启动(windows)

    原博文地址为:https://blog.csdn.net/x356982611/article/details/53183144 简介 window下开机启动最简单的实现方式就是在注册表中添加启动项目 ...

  5. Qt学习笔记-Qt程序切换皮肤

    运行截图如下: 首先我们从网上随便搞一个别人写好的QSS(这个东西其实自己写更有意思) 本人自己写的还没完善,为了做这个笔记,先用网上的, QSS代码如下: /* === Shared === */ ...

  6. [Qt学习笔记]Qt程序加密,实现软件运行次数和硬件信息绑定

    文章目录 前言 1.思路分析 2.实现函数 3.示例代码 4.效果展示 前言 程序员为了防止自己的成果被白嫖,或者发布的软件在公司层面上要做一些防抄袭处理,这时就需要在软件层面上加锁.加密等操作. 1 ...

  7. Qt学习笔记-Qt中OpenGL的使用

    现在窗口中心即为坐标原点,X轴从左到右,Y轴从下到上,Z轴从里到外. 程序运行截图如下: 源码如下: myglwidget.h #ifndef MYGLWIDGET_H #define MYGLWID ...

  8. Qt学习笔记-Qt Graphic View Framework

    逻辑: 1.创建一场景 -> QGraphicsScene 2.创建一个视图 -> QGraphicsView 3.往场景添加Item -> QGraphicsSimpleTextI ...

  9. c++ qt工作量和移动端相比_学习笔记 --- QT

    0.前序 别问,问就是选修... 那毕竟3dMax动画那边结课了,我怎么就不能再发一篇笔记(极其嚣张) QT其实会去好好学的,虽然最近为了选修结课又得恶补一波 不过以后给策划造编辑器是要用的,这篇笔记 ...

最新文章

  1. 数据结构为什么重要?
  2. 阿里云服务器常见用语
  3. SpringMVC 简单拦截器配置
  4. (五)开源IT资产管理系统--分发OCS客户端
  5. SAP UI5 manifest.json 和 i18n 多语言文本的解析逻辑
  6. Xcode做简易计算器
  7. 计算机软件理论基础集合论,从数理逻辑观点看计算机专业的理论基础探讨
  8. 2015-12-01 SQL查询语句基础
  9. python关键词提取源码,python实现textrank关键词提取
  10. 把SQLAlchemy查询对象转换成字典/json使用(分开)
  11. Oracle的数据并发与一致性详解(下)
  12. C语言循环逻辑之if语句
  13. k8s报错error: You must be logged in to the server (Unauthorized)
  14. 计算机毕业设计(69)php小程序毕设作品之疫苗预约小程序系统
  15. CppPrimer 学习笔记(1)
  16. Code Review(自评)
  17. 微信小程序—map地图实现标记多个位置
  18. 高中选科策略隐私政策
  19. Golang学习篇——UTC时间互换标准时间
  20. AxureRP9 中继器的简单使用

热门文章

  1. 如何利用FineReport制作动态树报表
  2. Linux kernel 不输出log信息
  3. Linux基础知识:正则表达式
  4. PhpCms V9调用指定栏目子栏目文章的方法
  5. kaptcha验证码实现,配合spring boot使用
  6. Subversion权限详解
  7. 用 Jackson 来处理 JSON
  8. TF-IDF与余弦相似性的应用
  9. Linux服务管理---系统运行级别、rpm启动与自启动、源码包的启动...
  10. Trailblazer —— Rails 的扩展概念驱动开发框架