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

C++ Qt开发成长之路,从入门到企业级实战项目,保姆级学习路线

Qt 介绍

Qt是一个跨平台的C++图形用户界面应用程序开发框架,最初由挪威的Trolltech公司开发,后来被诺基亚收购,现在由Qt公司维护。它提供了丰富的工具和类库,使开发者能够轻松地创建各种类型的应用程序,包括桌面应用、移动应用、嵌入式应用和即时通讯软件等。

Qt官网:https://www.qt.io/

Qt 特点

  • 跨平台性: Qt的应用程序可以轻松地在各种操作系统上运行,包括Windows、macOS、Linux、iOS和Android等。

  • 丰富的类库: Qt提供了大量的类库,涵盖了从图形界面到网络编程等各种功能,开发者可以利用这些类库来快速构建应用程序。

  • 信号与槽机制: Qt引入了信号与槽机制,这是一种非常灵活的事件处理方式,能够简化程序的逻辑设计。

  • 良好的文档和社区支持: Qt拥有完善的文档和活跃的社区支持,开发者可以轻松地获取到相关的教程、示例代码和帮助文档。

  • 可视化设计工具: Qt提供了Qt Creator等可视化的集成开发环境,方便开发者进行界面设计和代码编写。

Qt被广泛应用于各种领域,包括桌面应用程序、移动应用程序、游戏开发、工业控制、医疗设备、汽车电子等,是一个非常强大且灵活的开发框架。

使用 Qt 开发的知名商业项目

  • VirtualBox: 一款开源的虚拟化软件,使用Qt作为其图形用户界面工具包。

  • Autodesk Maya: 一款专业的3D建模、动画和渲染软件,部分使用了Qt进行界面开发。

  • Google Earth: 这款虚拟地球软件的桌面版本(Google Earth Pro)使用了Qt作为其图形用户界面工具包。

  • MATLAB: 数值计算软件MATLAB的桌面版本中,使用了Qt作为其图形用户界面工具包。

  • KDE桌面环境: KDE是一个开源的桌面环境,包括一系列的应用程序和工具,其中很多应用程序使用了Qt进行开发。

  • Wireshark: 开源的网络协议分析工具,使用了Qt进行界面开发。

  • RStudio: 一款专业的用于R语言编程的集成开发环境(IDE),使用Qt进行界面设计。

  • Qt Creator: Qt自己的集成开发环境,完全基于Qt开发。

  • WPS、腾讯会议、优酷、YY语音、剪映、万兴喵影、亿图脑图、福昕软件等等。

使用 Qt 开发的开源项目

  • VLC media player: 开源的跨平台多媒体播放器,使用Qt进行界面设计,可以播放绝大部分格式文件,以及 rtmp,rtsp 推拉流。

  • OBS Studio: 开源的跨平台直播流和录制软件,用于创建高质量的实时视频和音频内容,提供一种简单而功能强大的工具,使用户能够轻松地进行直播流媒体和录制视频。

  • Shotcut:开源的跨平台视频编辑软件,易于使用但功能强大的视频编辑工具,适用于各种用户,包括初学者和专业用户。

Qt的发展前景

Qt 在各个行业的应用逐渐广泛起来,对于掌握 Qt 开发技能的人员需求也在不断增加,因此在就业方面,相对于其他行业来说,Qt 就业面更广,选择性更多。 同时Qt 作为一项专业技能,掌握此项技术的开发者获得的薪资报酬也是非常可观的,具有更多的职业发展机会。

Qt 学习大纲

1.基础专栏

1.1 Qt C++语言编程基础

  • 1.1.1 Visual Studio 2022安装

  • 1.1.2 C++语言基础概述

  • 1.1.3 C++指针与引用

  • 1.1.4 C++类与对象(一)

  • 1.1.5 C++类与对象(二)

  • 1.1.6类的基它特性

  • 1.1.7 构造函数 &析构函数&拷贝构造函数

  • 1.1.8 C++友元与动态内存

  • 1.1.9 函数重载与运算符重载

1.2 Qt C++语言进阶

  • 1.2.1单继承

  • 1.2.2多继承

  • 1.2.3 虚继承及其它特性

  • 1.2.4虚函数与抽象类

  • 1.2.5 命名空间与模板

  • 1.2.6 C++IO流类库

  • 1.2.7 STL(vector & deque & stack)

  • 1.2.8 STL(queue & set & map)

  • 1.2.9 C++异常处理

1.3 Qt C++语言新特性

  • 1.3.1类型推导: auto & decltype

  • 1.3.2 序列for循环

  • 1.3.3 lambda表达式

  • 1.3.4构造函数:委托构造和继承构造

  • 1.3.5 容器: array & forward_list & tuple

  • 1.3.6垃圾回收机制

  • 1.3.7正则表达式基础

  • 1.3.8 智能指针: shared_ptr &unique_ptr &weak_ptr

  • 1.3.9 关键字: nullptr & constexpr

  • 1.3.10 共享内存 &互斥量mutex

  • 1.3.11 C++11 : STL hashmap

  • 1.3.12 关联容器: unordered_map

  • 1.3.13 function函数对象

  • 1.3.14 atomic_flag & atomic应用

  • 1.3.15 条件变量:condition_variable

  • 1.3.16 异常处理: exception

  • 1.3.17 is_integral应用实战

  • 1.3.18 is_rvalue_reference应用实战

  • 1.3.19 is_arithmetic应用实战

  • 1.3.20 is_volatile应用实战

  • 1.3.21 is_class应用实战

  • 1.3.22 变量模板

  • 1.3.23 inline应用实战

1.4 C++ 23种设计模式

1.4.1 创建型模式(5种)

  • 1.4.1.1工厂模式

  • 1.4.1.2 抽象工厂模式

  • 1.4.1.3 原型模式

  • 1.4.1.4单例模式

  • 1.4.1.5 建造者模式

1.4.2 结构型模式(7种)

  • 1.4.2.1 适配器模式

  • 1.4.2.2 桥接模式

  • 1.4.2.3 组合实体模式

  • 1.4.2.4装饰器模式

  • 1.4.2.5 外观模式

  • 1.4.2.6 享元模式

  • 1.4.2.7代理模式

1.4.3 行为模式(11种)

  • 1.4.3.1责任链模式

  • 1.4.3.2 中介者模式

  • 1.4.3.3 策略模式

  • 1.4.3.4模板模式

  • 1.4.3.5状态模式

  • 1.4.3.6 观察者模式

  • 1.4.3.7 备忘录模式

  • 1.4.3.8 命令模式

  • 1.4.3.9 访问者模式

  • 1.4.3.10 解释器模式

  • 1.4.3.11 迭代器模式

2.提高专栏

2.1 Qt开发基础体系

2.1.1 Qt下载与安装配置

  • 2.1.1.1 Windows Qt环境安装

  • 2.1.1.2 Linux Qt环境安装

2.1.2 Qt Creator工具介绍与使用

2.1.3 Qt信号与槽机制

2.1.4 Qt字符串 &数据类型&容器类

  • 2.1.4.1 字符串类应用与常见数据类型

  • 2.1.4.2常用容器类

2.1.4.2.1 QMap类 & QHash类&QVector类 2.1.4.2.2 QList类& QLinkedList类

2.1.5 QVariant类应用

2.1.6 常用算法及正则表达式

2.2 Qt开发常用控件模块详解

  • 2.2.1 Layouts & Spacers

  • 2.2.2 Buttons & Containers

  • 2.2.3 Item Views

  • 2.2.4 Item Widgets

  • 2.2.5 Input Widgets

  • 2.2.6 Display Widgets

2.3 Qt布局及对话框详解

2.3.1 布局管理

  • 2.3.1.1 QLayout & QStackedWidget类

  • 2.3.1.2 QSplitter类& QDockWidget类

2.3.2 对话框

  • 2.3.2.1文件对话框

  • 2.3.2.2 颜色对话框

  • 2.3.2.3 字体对话框

  • 2.3.2.4 输入对话框

  • 2.3.2.5 消息对话框

  • 2.3.2.6 自己定义消息框

2.4 Qt图形&模型&视图

  • 2.4.1 绘图原理双缓冲机制

  • 2.4.2 Graphics View特性详解

  • 2.4.3 Mode & View & Delegate

2.5 Qt文件操作及事件处理

2.5.1 读写文件详解

2.5.2目录操作及文件系统

  • 2.5.2.1 QCoreApplication类

  • 2.5.2.2 QFile类

  • 2.5.2.3 QFileInfo类

  • 2.5.2.4 QDir类

  • 2.5.2.5 QTemporaryDir

  • 2.5.2.6 QTemporaryFile

2.5.3获取文件属性项目实战

2.5.4 鼠标及键盘事件

2.5.5事件过滤处理分析

2.6 Qt开发配置文件应用

  • 2.6.1 INI文件操作实战

  • 2.6.2 JSON文件操作实战

  • 2.6.3 XML文件操作实战

2.7 Qt网络及多线程

2.7.1 Qt网络编程知识体系

2.7.2 TCP协议工作原理及实战

  • 2.7.2.1 TCP服务器设计与实现

  • 2.7.2.2 TCP客户端设计与实现

2.7.3 UDP协议工作原理及实战

  • 2.7.3.1 UDP服务器设计与实现

  • 2.7.3.2 UDP客户端设计与实现

2.7.4多线程编程

  • 2.7.4.1 互斥量

  • 2.7.4.2 信号量

  • 2.7.4.3 多线程C/S模型项目实战

2.7.5 HTTP协议编程实战技术

2.7.6 Websocket原理及实战编程技术

2.8 Qt图表详解 & QML &多媒体

  • 2.8.1 QtChart图表及曲线图

  • 2.8.2 折线图_柱形图_饼状图

  • 2.8.3 QML基础编程应用实战

  • 2.8.4 Qt音频编程实战项目

  • 2.8.4 Qt视频编程实战项目

2.9 Qt应用程序打包

  • 2.9.1 Qt Creator将应用程序生成Release版本

  • 2.9.2 Enigma Virtual Box将Qt程序打包成EXE

2.10 QML开发常用技术

  • 2.10.1 QML基础知识分析

  • 2.10.2 QML鼠标与事件处理

  • 2.10.3 QML布局管理Layout

  • 2.10.4 Quick Canvas元素

  • 2.10.5 Quick动画基础知识

  • 2.10.6 Widget自定义按钮实战操作

  • 2.10.7 Loader动态加载组件

  • 2.10.8 QML高级编程【下拉菜单实战]

3.进阶专栏

3.1 Quick开发常用技术模块

3.1.1 QML基础知识

  • 3.1.1.1 QML语言基础

  • 3.1.1.2 QML元素1: Image & Rectangle & Text

  • 3.1.1.3 QML元素2 : ButtonStyle & Item & BusyIndicator

3.1.2 Quick事件处理

  • 3.1.2.1键盘事件

  • 3.1.2.2鼠标事件

  • 3.1.2.3 定时器

3.1.3 Quick组件及元素布局

  • 3.1.3.1 Component & Loader

  • 3.1.3.2定位器及布局管理器

3.1.4 Quick开发常用元素及Canvas(画布)

  • 3.1.4.1 TextField & TextArea &TextInput

  • 3.1.4.2 CheckBox & GroupBox&TabView

  • 3.1.4.3 Canvas(画布)绘制图形

3.1.5 动画及Mode & View

  • 3.1.5.1 动画常用元素

  • 3.1.5.1.1 Animation & PropertyAnimation & NumberAnimation

  • 3.1.5.1.2 ColorAnimation & PathAnimation & SpringAnimation

  • 3.1.5.1.3 组合动画部分:ParallelAnimation & SequentialAnimation

  • 3.1.5.1.4 动画协同元素:Behavior & ParentAnimation &AnchorAnimation

3.2 QSS开发常用技术模块

  • 3.2.1 QSS实战开发1: QSS作用及应用场景

  • 3.2.2 QSS实战开发2:QSS常用基本语法

  • 3.2.3 QSS实战开发3:QSS控件样式QLabel & QLineEdit & QPushButton

  • 3.2.4 QSS实战开发4:QSS控件样式QComboBox

  • 3.2.5 QSS实战开发5:QSS控件样式QTableWidget

  • 3.2.6 QSS实战开发6: QSS控件样式QProgressBar

  • 3.2.7 QSS实战开发7:QSS控件样式QSlider

  • 3.2.8 QSS实战开发8:QSS控件样式CheckBox

  • 3.2.9 QSS实战开发9: Ubuntu系统控件风格

  • 3.2.10 QSS实战开发10:Mac系统控件风格

3.3 Qt开发必用技术模块

  • 3.3.1 QtConcurrent线程处理(过滤和映射)

  • 3.3.2 Qt之QWebEngineView框架分析

  • 3.3.3 Qt生成及读取XML文件及应用实战

3.4 MySQL数据库编程技术

  • 3.4.1 数据库基础知识

  • 3.4.2 MySQL基本操作

  • 3.4.3 MySQL运算符

  • 3.4.4 数据类型及存储引擎

  • 3.4.5 表数据增 &删&改&查& 高级查询

  • 3.4.6 MySQL流程控制语句

  • 3.4.7 SQL语句详解

  • 3.4.8 索引

  • 3.4.9 视图

  • 3.4.10 存储过程和函数

  • 3.4.11 触发器

  • 3.4.12 事件

  • 3.4.13 MySQL备份与恢复

  • 3.4.14 Qt操作MySQL数据库实战

3.5 SQLite数据库编程技术

  • 3.5.1 SQLite下载与安装配置

  • 3.5.2 SQLite 创建数据库

  • 3.5.3 SQLite 附加&分离数据库

  • 3.5.4 SQLite 数据类型

  • 3.5.5 SQLite 创建表&删除表

  • 3.5.6 SQLite insert into语句详解

  • 3.5.7 SQLite select & update & delete语句

  • 3.5.8 SQLite Distinct & Orderby & Groupby

  • 3.5.9 SQLite 触发器

  • 3.5.10 SQLite 索引

  • 3.5.11 SQLite 视图

  • 3.5.12 SQLite 事务

  • 3.5.13 Qt操作SQLite数据库实战

3.6 OpenCV编程开发常用技术

  • 3.6.1 OpenCV与VS2022环境搭建

  • 3.6.2 OpenCV常见API及绘图详解

  • 3.6.3 OpenCV图像读写技术

  • 3.6.4 OpenCV视频读写技术

  • 3.6.5 OpenCV图像滤波技术

  • 3.6.6 OpenCV视频录制技术

  • 3.6.7 OpenCV图像翻转技术

  • 3.6.8 OpenCV图像旋转技术

  • 3.6.9 OpenCV实现窗口置顶

  • 3.6.10 OpenCV边缘检测技术1

  • 3.6.11 OpenCV边缘检测技术2

  • 3.6.12 OpenCV向上向下采样

  • 3.6.14 OpenCV形态学之膨胀

  • 3.6.15 OpenCV图像浮雕技术

  • 3.6.16 OpenCV图像人脸识别

4.项目实战专栏1

4.1【智汇协同Office办公软件V3.0】原生代码实现

  • 4.1.1 HTML文字编辑软件--项目需求及简介

  • 4.1.2菜单栏_工具栏_状态栏功能模块设计

  • 4.1.3 菜单栏_工具栏_状态栏功能与实现

  • 4.1.4系统模块整体功能关联与实现

  • 4.1.5 HTML文件编辑软件调试及测试

  • 4.1.6软件模块测试及打包程序

4.2【TCP/UDP协议网络调试助手V3.0】

  • 4.2.01 TCP/UDP协议网络调试助手--项目需求及简介

  • 4.2.02 TCP服务器端:启动监听、停止监听、高DPI适配

  • 4.2.03 TCP服务器端:客户端管理QList<QTcpSocket*>、消息广播

  • 4.2.04 TCP服务器端:多客户端并发连接、日志管理等功能

  • 4.2.05 TCP客户端:连接管理、消息收发

  • 4.2.06 TCP客户端:自动化测试(QTimer)、错误处理等功能

  • 4.2.07 UDP服务器端:监听UDP数据报、单播和组播模式

  • 4.2.08 UDP服务器端:客户端响应、日志管理等功能

  • 4.2.09 UDP客户端:单播/组播通信、消息格式化验证等功能

  • 4.2.10 软件模块测试及打包程序

4.3【C/S架构系统--文件传输工具 V2.0】

  • 4.3.01 服务器:项目需求及简介,UI界面设计与获取IP地址

  • 4.3.02 服务器:处理客户端连接请求实现

  • 4.3.03 服务器:收发双方消息设计与实现

  • 4.3.04 服务器:处理接收文件传输及进度条实现

  • 4.3.05 服务器:处理分辨率及项目测试上线

  • 4.3.06 客户端:C/S架构系统介绍及安装环境

  • 4.3.07 客户端:系统UI界面设计与实现

  • 4.3.08 客户端:系统函数设计与获取IP地址

  • 4.3.09 客户端:连接与断开,读取服务器socket消息

  • 4.3.10 客户端:发送消息及日期时间处理

  • 4.3.11 客户端:传输文件及进度条状态更新

  • 4.3.12 客户端:系统托盘技术设计与实现

  • 4.3.13 软件模块测试及打包程序

4.4【中英文智语翻译软件V1.0】第三方API接口

  • 4.4.1 中英文智语翻译软件--项目需求及简介

  • 4.4.2 申请成为第三方个人开发者

  • 4.4.3 阅读API接口文档说明

  • 4.4.4 APP ID和密钥及拼接处理计算签名

  • 4.4.5 解析JSON数据及翻译日志文件实现

  • 4.4.6 软件模块测试及打包程序

4.5【商品库存智能管理系统V2.0】

  • 4.5.1 项目需求及简介,商品库存数据库设计与实现,配置测试

  • 4.5.2 库存商品添加设计与实现

  • 4.5.3 库存商品查询设计与实现

  • 4.5.4库存商品删除设计与实现

  • 4.5.5 商品信息实现数据报表

  • 4.5.6商品信息出库设计与实现

  • 4.5.7库存商品汇总设计与实现

  • 4.5.9 软件模块测试及打包程序

4.6【企业员工信息管理系统V2.0】

  • 4.6.1项目需求及简介,开发资料下载

  • 4.6.2 Player UI主界面设计

  • 4.6.3 Navicat操作数据库及系统UI设计与实现

  • 4.6.4初始化数据及输出员工记录信息

  • 4.6.5 添加员工信息设计与实现

  • 4.6.6删除员工信息设计与实现

  • 4.6.7 修改员工信息设计与实现

  • 4.6.8查询员工信息设计与实现

  • 4.6.9 软件模块测试及打包程序

4.7 【搜畅听宝MP3音乐播放器V3.0】

  • 4.7.01 播放器搜索引擎--项目需求及简介

  • 4.7.02 系统架构及UI界面设计与实现

  • 4.7.03 播放器拖动及关于窗口设计与实现

  • 4.7.04 HTTP请求_JSON数据解析功能实现

  • 4.7.05 QJsonDocument/QJsonObject应用技巧

  • 4.7.06导入本地MP3音乐功能设计与实现

  • 4.7.07 播放歌曲_暂停播放_停止播放功能实现

  • 4.7.08播放上一曲_播放下一曲_静音功能实现

  • 4.7.09 控制播放进度及LCD时间动态设计与实现

  • 4.7.10 歌曲信息动态字幕功能设计与实现

  • 4.7.11 软件模块测试及打包程序

4.8【畅视聚媒视频播放器V2.0】

  • 4.8.01 畅视聚媒视频播放器--项目需求分析

  • 4.8.02 视频播放控制7种功能实现

  • 4.8.03 播放列表(视频添加/删除/播放等功能)

  • 4.8.04 视频播放预览功能设计与实现

  • 4.8.05 网络流媒体播放(URL验证等功能)

  • 4.8.06 播放历史记录管理(添加/清除/历史查看)

  • 4.8.07 全屏播放(普通窗口/全局窗口)

  • 4.8.08 音频控制(音量控制、静音切换)

  • 4.8.09 快捷键(左右键/ESC建/M键等实现基本操作)

  • 4.8.10播放模式(顺序播放,列表/单曲/随机播放)

  • 4.8.11 配置管理:写入及读取配置文件

5.项目实战专栏2

5.1【航空公司机票预订系统V1.0】

  • 5.1.01 机票预订--项目需求分析

  • 5.1.02 普通用户注册及登录实现

  • 5.1.03 后台系统管理中心:订单信息查询、修改、删除

  • 5.1.04 后台系统管理中心:旅客信息查询、修改、删除

  • 5.1.05 后台系统管理中心:航班信息查询(日期查询)

  • 5.1.06 后台系统管理中心:航班信息查询(航班号查询)

  • 5.1.07 后台系统管理中心:航班信息修改、删除

  • 5.1.08 旅客信息管理中心:个人信息(订单:已支付)

  • 5.1.09 旅客信息管理中心:订单中心(订单:已支付)

  • 5.1.10 旅客信息管理中心:订单中心(订单:未支付)

  • 5.1.11 旅客信息管理中心:订单中心(退订订单、删除订单)

  • 5.1.12 旅客信息管理中心:航班查询及订票实现

  • 5.1.13 软件模块测试及打包程序

5.2【智瞳多维人脸识别系统V1.0】

  • 5.2.01 人脸识别--项目需求分析

  • 5.2.02 阅读API接口文档说明

  • 5.2.03 设备采集视频数据设计与实现

  • 5.2.04 注册人脸设计与实现

  • 5.2.05 人脸库训练设计与实现

  • 5.2.06 视频采集人脸与人脸库比对

  • 5.2.07 软件模块测试及打包程序

5.3【WebFileServer架构系统V1.0】

  • 5.3.01 WebFileServer--项目需求分析

  • 5.3.02文件上传功能设计与实现

  • 5.3.03 文件下载功能设计与实现

  • 5.3.04文件删除功能设计与实现

  • 5.3.05 文件列表展示功能设计与实现

  • 5.3.06 HTTP请求处理设计与实现

  • 5.3.07 HTTP响应处理设计与实现

  • 5.3.08 技术体系: socket、epoll、线程池、HTTP协议解析

  • 5.3.09 软件模块测试及打包程序

5.4【C/S架构企业实时通信平台V1.0】

  • 5.4.01 项目需求分析,后台管理:UI设计与实现

  • 5.4.02后台管理:用户信息管理模块

  • 5.4.03 后台管理:用户权限修改

  • 5.4.04 后台管理:数据信息安全备份

  • 5.4.05 客户端:登录设计与实现

  • 5.4.06 客户端:窗口翻转切换效果实现

  • 5.4.07 客户端:登录IP与端口设置

  • 5.4.08 客户端:UI及窗口移动实现

  • 5.4.09 客户端:登录逻辑业务处理分析

  • 5.4.10客户端:系统托盘技术实现

  • 5.4.11 客户端: 好友组及UI效果设计与实现

  • 5.4.12 客户端:聊天信息窗口设计与实现

  • 5.4.13客户端:个人图像更换及裁剪实现

  • 5.4.14 客户端:聊天逻辑处理分析

  • 5.4.15 客户端:个人表情及gif图片处理

  • 5.4.16 客户端:文件上传功能实现

  • 5.4.17 客户端:文件传输设计与实现

  • 5.4.18 软件模块测试及打包程序

5.5 【DeepSeekAssistant软件 V1.0】

  • 5.5.01 DeepSeekAssistant--项目需求分析

  • 5.5.02 申请成为第三方个人开发者

  • 5.5.03 阅读API接口文档说明

  • 5.5.04 如何创建API Key

  • 5.5.05 项目接入DeepSeek API模块

  • 5.5.06 SQLite数据库存储提问及回答设计与实现

  • 5.5.07 整体项目UI布局设计与实现

  • 5.5.08 网络通信:HTTP请求与接收

  • 5.5.09 UI界面美化:QSS实现

  • 5.5.10 综合控件应用:QLineEdit、QTextEdit、QProgressBar等

  • 5.5.11 计时器综合应用:QElapsedTimer、QTimer等

  • 5.5.12 软件模块测试及打包程序

5.6 【汽车中控汽车仪表盘 V1.0】

  • 5.6.01 仪表盘--项目需求分析

  • 5.6.02 速度表:实时车速

  • 5.6.03 速度表:圆形表盘数字

  • 5.6.04 速度表:渐变指针等

  • 5.6.05 转速表:发动机转速

  • 5.6.06 转速表:刻度分段警示

  • 5.6.07 转速表:当前转速数值及单位

  • 5.6.08 油量表设计与实现

  • 5.6.09 温度表设计与实现

  • 5.6.10 左右转向指示灯设计与实现

  • 5.6.11 数据层:模拟数据生成

  • 5.6.12 数据层:动画控制引擎

5.7【操作系统绘图软件V1.0】

  • 5.7.01 绘图软件--项目需求分析

  • 5.7.02 整个软件框架设计与实现

  • 5.7.03 菜单栏:文件设计与实现

  • 5.7.04 菜单栏:编辑设计与实现

  • 5.7.05 菜单栏:绘图指令设计与实现

  • 5.7.06 菜单栏:工具设计与实现

  • 5.7.07 指令面板:选择工具、橡皮擦工具设计与实现

  • 5.7.08 指令面板:放大镜工具、笔工具工具设计与实现

  • 5.7.09 指令面板:直线工具、喷笔工具设计与实现

  • 5.7.10 指令面板:填充工具、矩形工具、画圆工具设计与实现

  • 5.7.11 指令面板:文本工具设计与实现

  • 5.7.12 指令面板:绘图区域前景和背景色设计与实现

  • 5.7.13 综合状态栏设计与实现

  • 5.7.14 软件模块测试及打包程序

以上是系统学习课程大纲,需要系统学习添加贝贝老师602878196(备注123)咨询。其次你把整个内容,全部消化,是完全可以胜任任何C++ qt开发岗位的。

Qt 参考书籍资料

  • 《Qt C++编程从入门到实战》主编:彭源

  • 《Qt 5编程入门第2版》编著:程梁霍亚飞

  • 《嵌入式Qt开发项目教程》编著:王浩 著 王浩

  • 《Qt Quick核心编程》编著:安晓辉

  • 《零基础学Qt4编程》作者:吴迪著

  • 《C++并发编程实战(第2版)》作者:[英]安东尼·威廉姆

  • 《C++20实践入门(第6版)》作者:[比] 艾弗·霍尔顿(Ivor Horton)

  • 《OpenCV算法精解》作者:张平.编著

  • 《Qt圾Qt Quick开发实战精解》编著:霍亚飞

  • 《C++ GUI Qt 4编程 第二版》作者:Jasmin Blanchette & Mark Summerfield

自学的弊端:网上资料繁杂,知识零碎,看过之后容易很快就忘掉,遇到问题只能自己钻研,有些很简单的问题不知不觉就浪费了很多时间,除非你是定力耐心毅力非常强的人,不然学习起来会没有方向感,盲目的看书枯燥乏味耗时比较长,会导致没有学习积极性失去信心与坚持下去的决心等等。总的来说自学不能说完全不行,只是适合少数人,自学的难度比报班系统学习一定是困难很多很多倍,多付出很多很多倍的。

最后:

给校招的小伙伴一句话:第一份工作不亚于一次高考,珍惜校招,社招的竞争是你目前想象不到的。能去大厂觉不妥协,IT行业第一份工作背景越好,起点越高,后续发展空间越好!

给那些1-3年的安于现状的伙伴一句话:

不要抱怨市场,不要安于现状,在低端,往中端领域看,在中端,往高端领域看。认知以及对自身的要求,都会有所改变。

给那些担心35岁的伙伴一句话:

决定上限的不是年纪,而是技术。最后:希望学习路线对你有所帮助,希望码农的我们越来越好!

相关文章:

C++ Qt开发成长之路,从入门到企业级实战项目,保姆级学习路线

Qt 介绍 Qt是一个跨平台的C图形用户界面应用程序开发框架&#xff0c;最初由挪威的Trolltech公司开发&#xff0c;后来被诺基亚收购&#xff0c;现在由Qt公司维护。它提供了丰富的工具和类库&#xff0c;使开发者能够轻松地创建各种类型的应用程序&#xff0c;包括桌面应用、移…...

JavaWeb后端基础(7)AOP

AOP是Spring框架的核心之一&#xff0c;那什么是AOP&#xff1f;AOP&#xff1a;Aspect Oriented Programming&#xff08;面向切面编程、面向方面编程&#xff09;&#xff0c;其实说白了&#xff0c;面向切面编程就是面向特定方法编程。AOP是一种思想&#xff0c;而在Spring框…...

Uniapp实现地图获取定位功能

摘要&#xff1a;本文将手把手教你如何在Uniapp项目中集成地图功能、实现定位获取&#xff0c;并解决微信小程序、APP、H5三端的兼容性问题&#x1f680;&#x1f680;&#x1f680; 一、环境准备 地图平台选择 微信小程序&#xff1a;腾讯地图&#xff08;强制使用&#xff09…...

批量将 Excel 转换 PDF/Word/CSV以及图片等其它格式

Excel 格式转换是我们工作过程当中非常常见的一个需求&#xff0c;我们通常需要将 Excel 转换为其他各种各样的格式。比如将 Excel 转换为 PDF、比如说将 Excel 转换为 Word、再比如说将 Excel文档转换为图片等等。 这些操作对我们来讲都不难&#xff0c;因为我们通过 Office 都…...

Flutter:StatelessWidget vs StatefulWidget 深度解析

目录 1. 引言 2. StatelessWidget&#xff08;无状态组件&#xff09; 2.1 定义与特点 2.2 代码示例 3. StatefulWidget&#xff08;有状态组件&#xff09; 3.1 定义与特点 3.2 代码示例 4. StatelessWidget vs StatefulWidget 对比 5. StatefulWidget 生命周期 5.1…...

Stream流学习

Stream流 把数据放进stream流水线&#xff0c;对数据进行一系列操作&#xff08;中间方法&#xff09;&#xff0c;最后封装&#xff08;终结方法&#xff09;。 Stream.of()允许传入任何参数 常见中间方法 可以对数据进行链式&#xff08;流水线&#xff09;操作&#xff0c;但…...

多视图几何--恢复相机位姿/内参的几种方法

恢复相机位姿的几种方法 1分解投影矩阵 1.1投影矩阵分解为相机内外参矩阵的完整解析 投影矩阵&#xff08;Projection Matrix&#xff09;是计算机视觉中将三维世界点映射到二维像素坐标的核心工具&#xff0c;其本质是相机内参矩阵&#xff08;Intrinsic Matrix&#xff09…...

[数据结构]堆详解

目录 一、堆的概念及结构 二、堆的实现 1.堆的定义 2堆的初始化 3堆的插入 ​编辑 4.堆的删除 5堆的其他操作 6代码合集 三、堆的应用 &#xff08;一&#xff09;堆排序&#xff08;重点&#xff09; &#xff08;二&#xff09;TOP-K问题 一、堆的概念及结构 堆的…...

领域驱动设计(DDD)与MVC架构:理念对比与架构选择

领域驱动设计&#xff08;DDD&#xff09;与MVC架构&#xff1a;理念对比与架构选择 一、架构之争的本质&#xff1a;业务复杂度驱动技术演进 在软件开发领域&#xff0c;没有银弹式的完美架构&#xff0c;只有适合当前业务场景的合理选择。MVC与DDD的区别本质上是业务复杂度与…...

牛客周赛:84:B:JAVA

链接&#xff1a;登录—专业IT笔试面试备考平台_牛客网 来源&#xff1a;牛客网 题目描述 import java.util.ArrayList; import java.util.Arrays; import java.util.Scanner; public class Main {public static void main(String[] args) {Scanner scanner new Scanner(S…...

【理想解法学习笔记】

目录 理想解法原理简介算法步骤属性值规范化方法代码示例 理想解法 原理简介 TOPSIS(Technique for Order Preference by Simi larity to IdealSolution)法是一种逼近理想解的排序方法。其基本的处理思路是&#xff1a;首先建立初始化决策矩阵&#xff0c;而后基于规范化后的初…...

CI/CD—Jenkins配置一次完整的jar自动化发布流程

背景&#xff1a; 实现设想&#xff1a; 要创建自动化发布&#xff0c;需要准备一台测试服务器提前安装好java运行所需的环境&#xff0c;JDK版本最好和Windows开发机器上的版本一致&#xff0c;在Jenkins上配置将构建好的jar上传到测试服务器上&#xff0c;测试服务器自动启动…...

Magento2根据图片文件包导入产品图片

图片包给的图片文件是子产品的图片&#xff0c;如下图&#xff1a;A104255是主产品的sku <?php/*** 根据图片包导入产品图片&#xff0c;包含子产品和主产品* 子产品是作为主图&#xff0c;主产品是作为附加图片*/use Magento\Framework\App\Bootstrap;include(../app/boot…...

从零开始的python学习(五)P71+P72+P73+P74

本文章记录观看B站python教程学习笔记和实践感悟&#xff0c;视频链接&#xff1a;【花了2万多买的Python教程全套&#xff0c;现在分享给大家&#xff0c;入门到精通(Python全栈开发教程)】 https://www.bilibili.com/video/BV1wD4y1o7AS/?p6&share_sourcecopy_web&v…...

OpenHarmony5.0分布式系统源码实现分析—软总线

一、引言 OpenHarmony 作为一款面向万物互联的操作系统&#xff0c;其分布式软总线&#xff08;Distributed SoftBus&#xff09;是实现设备间高效通信和协同的核心技术之一。分布式软总线通过构建一个虚拟的总线网络&#xff0c;使得不同设备能够无缝连接、通信和协同工作。本…...

基于SpringBoot实现旅游酒店平台功能六

一、前言介绍&#xff1a; 1.1 项目摘要 随着社会的快速发展和人民生活水平的不断提高&#xff0c;旅游已经成为人们休闲娱乐的重要方式之一。人们越来越注重生活的品质和精神文化的追求&#xff0c;旅游需求呈现出爆发式增长。这种增长不仅体现在旅游人数的增加上&#xff0…...

代码随想录算法训练营第六十一天 | 108. 冗余连接 109. 冗余连接II

108. 冗余连接 题目链接&#xff1a;KamaCoder 文档讲解&#xff1a;代码随想录 状态&#xff1a;AC Java代码&#xff1a; import java.util.*;class Main {public static int[] father;public static void main(String[] args) {Scanner scan new Scanner(System.in);int n…...

RoboVQA:机器人多模态长范围推理

23 年 11 月来自 Google Deepmind 的论文“RoboVQA: Multimodal Long-Horizon Reasoning for Robotics”。 本文提出一种可扩展、自下而上且本质多样化的数据收集方案&#xff0c;该方案可用于长期和中期的高级推理&#xff0c;与传统的狭窄自上而下的逐步收集相比&#xff0c…...

TCP/IP原理详细解析

前言 TCP/IP是一种面向连接&#xff0c;可靠的传输&#xff0c;传输数据大小无限制的。通常情况下&#xff0c;系统与系统之间的http连接需要三次握手和四次挥手&#xff0c;这个执行过程会产生等待时间。这方面在日常开发时需要注意一下。 TCP/IP 是互联网的核心协议族&…...

Microsof Visual Studio Code 安装教程(中文设置)

VS Code 是一个免费的代码编辑器&#xff0c;可在 macOS、Linux 和 Windows作系统上运行。启动和运行 VS Code 既快速又简单。VS Code&#xff08;全称 Visual Studio Code&#xff09;是一款由Microsoft 推出的免费、开源、跨平台的代码编辑器&#xff0c;拥有强大的功能和灵活…...

python爬虫:Android自动化工具Auto.js的详细使用

更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 1. Auto.js 简介2. 安装与配置2.1 安装 Auto.js2.2 安装 Python 环境2.3 安装 ADB 工具3. Python 与 Auto.js 结合3.1 通过 ADB 执行 Auto.js 脚本3.2 通过 Python 控制 Auto.js3.3 通过 Python 与 Auto.js 交互4. 常用…...

Unity DOTS从入门到精通之 自定义Authoring类

文章目录 前言安装 DOTS 包什么是Authoring1. 实体组件2. Authoring类 前言 DOTS&#xff08;面向数据的技术堆栈&#xff09;是一套由 Unity 提供支持的技术&#xff0c;用于提供高性能游戏开发解决方案&#xff0c;特别适合需要处理大量数据的游戏&#xff0c;例如大型开放世…...

linux 软件安装(上)

一、基础环境准备 1.1、安装VM 1.2、在VM上导入linux iso镜像&#xff0c;装好linux系统 华为centos镜像下载地址 https://mirrors.huaweicloud.com/centos/ https://mirrors.huaweicloud.com/centos/7.9.2009/isos/x86_64/ 网易centos镜像下载地址 htt…...

php虚拟站点提示No input file specified时的问题及权限处理方法

访问站点&#xff0c;提示如下 No input file specified. 可能是文件权限有问题&#xff0c;也可能是“.user.ini”文件路径没有配置对&#xff0c;最简单的办法就是直接将它删除掉&#xff0c;还有就是将它设置正确 #配置成自己服务器上正确的路径 open_basedir/mnt/qiy/te…...

【江协科技STM32】ADC数模转换器-学习笔记

ADC简介 ADC&#xff08;Analog-Digital Converter&#xff09;模拟-数字转换器ADC可以将引脚上连续变化的模拟电压转换为内存中存储的数字变量&#xff0c;建立模拟电路到数字电路的桥梁&#xff0c;ADC是一种将连续的模拟信号转换为离散的数字信号的设备或模块12位逐次逼近型…...

QT系列教程(20) Qt 项目视图便捷类

视频连接 https://www.bilibili.com/video/BV1XY41127t3/?vd_source8be9e83424c2ed2c9b2a3ed1d01385e9 Qt项目视图便捷类 Qt项目视图提供了一些便捷类&#xff0c;包括QListWidget, QTableWidget&#xff0c; QTreeWidget等。我们分别介绍这几个便捷类。 我们先创建一个Qt …...

git worktree的使用

git worktree 是 Git 提供的一个强大功能&#xff0c;允许你在同一个仓库中同时创建多个工作目录&#xff0c;每个目录对应一个分支&#xff0c;从而实现并行开发。以下是 git worktree 的常用命令和使用方法&#xff1a; 1. 创建新的工作目录&#xff08;Worktree&#xff09…...

Spring Boot+RabbitMQ+Canal 解决数据一致性

目录大纲 一、环境配置1.1 docker-compose.yml 配置1.2 docker-compose 常用命令1.3 镜像服务启动状态 二、MySQL binlog 配置2.1 docker-compose command 配置 binlog2.2 创建canal用户&#xff0c;以及查看是否开启binlog 三、canal 相关配置文件3.1 canal.properties 完整文…...

Java高频面试之集合-08

hello啊&#xff0c;各位观众姥爷们&#xff01;&#xff01;&#xff01;本baby今天来报道了&#xff01;哈哈哈哈哈嗝&#x1f436; 面试官&#xff1a;详细说说CopyOnWriteArrayList CopyOnWriteArrayList 详解 CopyOnWriteArrayList 是 Java 并发包&#xff08;java.util…...

C#实现高性能异步文件下载器(支持进度显示/断点续传)

一、应用场景分析 异步文件下载器用处很大&#xff0c;当我们需要实现以下功能时可以用的上&#xff1a; 大文件下载&#xff08;如4K视频/安装包&#xff09; 避免UI线程阻塞&#xff0c;保证界面流畅响应多任务并行下载 支持同时下载多个文件&#xff0c;提升带宽利用率后台…...