当前位置: 首页 > news >正文

Qt学习及使用_第1部分_认识Qt---学习目的及技术准备

前言
       

        学以致用,通过QT框架的学习,一边实践,一边探索编程的方方面面.

        参考书:<Qt 6 C++开发指南>(以下称"本书")

        标识说明:概念用粗体+倾斜.重点内容用(加粗黑体)---重点内容(红字)---重点内容(加粗红字),

                        本书原话内容用深蓝色标识,比较重要的内容用加粗倾斜下划线深蓝色标识

引入

        笔者看学习Qt的目的,以及学习前需要哪些技术上的准备.

学习目的

        可能有人会奇怪学习目的不就是使用吗,为什么还要提这个?道理很简单,知其然和知其所以然

        1.学习Qt为了使用

        Qt框架建立一个GUI界面,实现一些功能.例如Qt creator(Qt的程序界面)是一个Qt设计的程序,如下图

        他包含了窗口,标题栏,菜单栏,下拉菜单 等元素.

        使用框架是一种"所见即所得"的编程方式,不需要程序员和底层打交道,与系统内核以及硬件交互的代码都被封装进框架,程序员面向应用层专注于应用,大大简化了程序的编写.

        Qt和其他框架相比,还有两个优势:一是基于Windows,有一台PC就可以干;二是支持GUI编程,鼠标点几下内容就出来了,是一种最简易的"所见即所得"的框架,这也是很多人选择他的原因.

        2.学习Qt为了明白程序结构,为写框架做准备

         如果学习框架的目的只是为了使用框架,要求未免有点低了.笔者认为只会使用框架的程序员不能称为"真正"的程序员.有人觉得会用也不错了,是的,专注于使用框架且能写出满意的效果,也达到目的了.

        深入理解框架的原因至少有以下两方面:

        1.项目升级更新,要想做出更"炫"的效果,就需要框架支持.如果不要框架支持自己写,不能通用.

        2.要写属于自己的框架.在学习Qt的过程中理解所有框架都包含的一些东西

简单的说,目的1---使用框架不需要读源码,目的2---深入理解框架需要读源码.

技术准备

        本书说明中要熟悉C++才能读本书.C++语法又多又杂,什么叫"熟悉",什么叫"精通",并没有一个标准去衡量.

        笔者认为目的1---使用框架,不需要太多的C++知识.本书前面几个章节,有一些新的知识,后面的章节几乎大同小异---不是说内容大同小异,是使用者的使用方法大同小异.因为很多东西都封装过了,有一种饭做好喂到嘴边那种感觉.枚举类继承是用得比较多的(笔者的C++基础里也有相关内容可参看)

        目的2---深入理解框架,需要的知识比较多了.像笔者用C++11,查看源码里有constexpr等C++14,[[nodiscard]]等C++17的内容.所以C++语法懂得越多越好,不过也不用太在意.现在用的C++几乎都是以11为基础,后面的版本增加了一些内容而已,可以边看边学.

        此外,Qt使用面向对象的编程方式,模块基本上全是以类的形式出现.所以面向对象的知识也是需要的("面向对象"有没有精通一说呢?笔者也不知道).如果说熟练运用面向对象有个标准的话,就是设计模式用得是否熟练.但设计模式与具体使用场景有关.如果刻意去学设计模式,他不能像学编程语言一样有立竿见影的效果.在程序员"不经意"的设计好一个类解决问题后,自然明白使用到了哪种设计模式.说的直白一点,设计模式是一种"意会",看起来难本质上不难.所以在学习Qt时借用Java中的一句话:一切都是对象.

        编程遵循的路线:需求→程序模型→库(框架)→代码.程序模型也是非常重要的.在框架里,模块里类与类之间的关系图,通常说明了程序模型.

其他

        以往的技术都是一些"散装"的知识,编程语言,面向对象,网络通信,多线程,数据类等等.框架把他们整合到了一起,因此还需要注意各个部分是怎样结合的.

        还有一点,经常会有人纠结学什么框架.站在数学的角度来看就很明白---框架是现象.也就是说所有的框架本质相同:有前端(界面),后端(数据),逻辑层(怎样显示数据)

        

        

        

相关文章:

  • 【Linux】SSH:免密登录
  • Cursor实现用excel数据填充word模版的方法
  • 第18节 Node.js Web 模块
  • 双面沉金线路板制作流程解析:高可靠性PCB的核心工艺
  • 【数据结构初阶】单链表
  • 论文调研_BCSD综述论文调研
  • 使用 Ansible 在 Windows 服务器上安装 SSL 证书系列之二
  • SpringBoot项目接口集中测试方法及实现
  • 巴西医疗巨头尤迈Kafka数据泄露事件的全过程分析与AI安防策略分析
  • Mac软件卸载指南,简单易懂!
  • iframe(概念、简单例子、在vue项目中的使用)
  • 【Java微服务组件】分布式协调P4-一文打通Redisson:从API实战到分布式锁核心源码剖析
  • MacOS下Homebrew国内镜像加速指南(2025最新国内镜像加速)
  • GOOUUU ESP32-S3-CAM 果云科技开发板开发指南(一)(超详细!)Vscode+espidf 通过摄像头拍摄照片并存取到SD卡中,文末附源码
  • Go 语言并发编程基础:无缓冲与有缓冲通道
  • VScode 使用 git 提交数据到指定库的完整指南
  • 【Fiddler工具判断前后端Bug】
  • 飞牛云一键设置动态域名+ipv6内网直通访问内网的ssh服务-家庭云计算专家
  • Linux下VSCode开发环境配置(LSP)
  • 阿里云ACP云计算备考笔记 (4)——企业应用服务
  • 前端只是做网站吗/全网营销软件
  • 电子商务专业网站设计/韩国热搜榜
  • 宜昌 网站建设 公司/优化步骤
  • 香港主机做电影网站/收录优美的图片app
  • 网站建设内部问卷/百度站长工具怎么关闭
  • 制作网站建网站/怎么自己做一个网页