C++ Qt零基础入门进阶与企业级项目实战教程与学习方法分享_qt项目实战-程序员宅基地

技术标签: c++  qt  C++ Qt零基础入门  1024程序员节  OBS源码分析  C++ Qt高级开发教程  深入浅出C++ Qt开发技术  

作者:令狐掌门
技术交流QQ群:675120140
csdn博客:https://mingshiqiang.blog.csdn.net/



  Qt是一个卓越的客户端跨平台开发框架,可以在Windows、Linux、macOS进行客户端开发,无缝切换,一统三端;当然除了桌面端,在移动端的早期,Qt也展现了其多才多艺,在Android和ios也可以使用Qt编写app, 近些年移动端的蓬勃发展,大浪淘沙,Qt已退出移动端开发的舞台,但是在桌面端开发,尤其是跨平台方面,Qt是不二选择。

​  Qt开发灵活多变,可以选用C++或Python,但要说到企业级桌面端项目,尤其对性能有要求的桌面端项目,C++无疑是首选。由于历史原因,很多第三方库都是使用C/C++编写,这些第三方库也经过了数十年的使用与验证,程序员在选择时不存在顾虑,linux、windows的系统接口则全是C/C++,使用C++可以更好的与第三方库、操作系统进行交互,同时C++的性能也高于其它语言,因此C++无疑是大多数企业桌面端项目的首选。Qt由于其较好的封装,使用简单,有着web的ui效果,同时也可以与web混合开发,或者把CEF集成到Qt, 实现更高效的c++ qt web混合开发效率,因此使用C++ Qt作为桌面端项目技术选型是很好的选择。例如腾讯会议、剪映、亿图MindMaster、优酷(2022年3月之前),斗鱼,AutoCAD等大型桌面端软件都是使用C++ Qt进行开发。

​  近年来,Qt更是热情推崇QML开发。这给许多开发者带来了疑虑,让很多Qt开发者站在了十字路口,选择QML还是QWidget?是走向PyQt,还是坚守C++ Qt,或是探索QML的新境界?学习QWidget是否过时了,企业里用qml多还是QWidget多;是学习PyQt,还是学习C++ Qt,还是学习qml;学习Qt,操作系统该怎么选,是在linux里学习,还是windows里学习,还是在mac里学习;由于C++开发环境的多样性,学习Qt该用哪个IDE,是使用QtCreator,还是使用VS Code, 还是使用VS2022;为什么Qt环境经常出问题,报错,无法编译,常量换行符,中文乱码,许多人感到困惑和沮丧。

​  学C++ Qt开发,需要先学习C++, 再学习Qt,然后做项目。很多人觉得C++难学,被一些视频,文章误导,直接被劝退。C++难,但并不是学不会,我当初也很想放弃C++, 但是我坚持下来了。

  这些年通过写博客,录教程,在qq群里和大家交流,了解到大家对Qt开发的困惑,经过多年的深入研究以及项目应用,我录制了三套视频教程,构建了一条C++ Qt的学习高速公路,让Qt开发者不在有难写的界面,不再被复杂的界面问题所困扰,当然课程里也有不少黑粉攻击,也有很多粉丝朋友的支持,在课程答疑群里,我也会尽自己所能为学员门解答,让每一个有志于C++ Qt开发的人,都能迅速上手并投入项目实战。本套教程一共3个阶段:

​ (1)C++零基础入门,

​ (2)Qt开发入门到高级进阶,

​ (3)C++ Qt开源项目OBS源码分析与应用。

​   本套课程由浅入深,详细的介绍了C++入门、Qt入门进阶到企业级项目实战、C++ Qt开源项目学习。相信通过本套教程的3门课程的学习,大家可以很好的掌握C++ Qt开发,课程提供答疑服务。

​   教程链接:C++ Qt入门进阶与企业级项目实战-CSDN程序员研修院


下面是各个阶段的介绍

阶段一:C++零基础入门与进阶

  C++零基础入门课程链接:2023 C++零基础入门视频教程_在线视频教程-CSDN程序员研修院

​  C++零基础入门课程,一共19个大章节,课件内容大概11万字, 由于C++有一部分知识点和C语言重合,本课程也附带讲解C语言的知识点,学习本课程是同时掌握两门语言,前10章是C和C++的共同部分,如果出现二者的区别会分开讲解。

课程主要内容如下:

C++ Linux开发环境搭建

  (1)学习虚拟机安装,Ubuntu Server安装,Ubuntu C++开发组件安装,VS Code Ubuntu C++开发环境搭建。

  (2)学习Windows WSL子系统安装与C++开发环境搭建。

在这里插入图片描述

C++ Windows开发环境搭建

​  学习Win11下VS2022安装与C++项目构建与调试

C/C++基础语法

   学习C/C++基础语法,标识符,变量,基本输入输出,运算符,循环控制,数组,指针与引用,字符串等知识点。

Linux VSCode C++调试

  学习linux静态ip设置,VS Code连接Ubuntu编写C++项目,学习在VS Code里如何调试C++项目。

VS2022 C++调试

  学习使用VS2022创建C++项目,介绍VS2022项目配置,VS2022与VS Code的区别。

Makefile

  学习在Linux下如何使用Makefile进行C++多目录多文件项目构建与调试。

CMake

  学习使用CMake构建C++项目,学习VS Code CMake进行项目调试。

C/C++内存管理

  内存管理是C++程序员的痛点,本课程会详细介绍C内存操作的相关函数,以及C内存池,C++ new与delete, 以及C++智能指针与new , delete之间的联系。

函数

  学习函数的函数的声明,函数参数的各种形式,函数指针,变参函数,全局函数等等

C++类与对象

  第11章C++类与对象是本课程的核心,本章会详细介绍C++类的各个知识点,名字空间,函数重载,类的声明,6中构造函数,析构函数,static, const关键字在类以及类对象的用法,类继承,多继承,虚继承,钻石继承,虚函数,纯虚函数,多态,类内存结构分析,友元函数,友元类,运算符重载等知识点。
在这里插入图片描述

C++智能指针

  智能指针是本课程第二个重点章节,本章节会详细介绍RAII机制,shared_ptr, weak_ptr, unique_ptr的用法,智能指针make系列函数的用法,自定义删除器,智能指针管理数组,以及开源项目WebRTC里智能指针的用法。
在这里插入图片描述

C++标准库学习

  学习玩类与对象,模板元编程、智能指针后,再来学习C++标准库,标准库知识点较多,在课程的第14章会详细介绍标准库里各种容器的用法。

在这里插入图片描述

C++职业发展介绍

在这里插入图片描述

阶段二:Qt入门进阶与企业级高级开发

课程链接:Qt高级开发视频教程_在线视频教程-CSDN程序员研修院

课程主要内容如下:

在这里插入图片描述

课程每章核心知识点介绍如下:

第一章:介绍Qt环境搭建、QtCreator / VS2019的基本使用方法,Qt整体架构、Qt信号机制,Qt内存管理等知识。

第二章:了解到很多学员对于Qt界面布局很不熟悉,将会详细介绍Qt设计器布局,以及如何C++代码手写布局,从常见的企业级项目入手,带领大家学会各种布局的实现,例如WPS、腾讯会议、优酷、迅雷等界面的实现;界面布局会了,这是企业项目开发的第一步,还有更重要的无边框窗口,如何设计一个合理的无边框窗口很重要,

第三/四章:详细介绍如何实现一个无边框窗口,如何自定义标题栏,如何实现拖拽拉伸;第四章将会介绍如何自定义非标控件,优化Qt界面。

第五章:介绍Qt web混合编程,一个商用项目,必然会涉及到web交互,这也是很多Qt开发者的弱项,这一章讲详细介绍C++ Qt web混合开发。

第六章:既然是做企业级项目,必然需要和后台交互,http编程也是必要的,将详细介绍http编程,用户注册,登录,后台接口请求等知识;通过第五、六章的学习,将会是你的Qt开发技术更上一层楼。

第七章:介绍Qt并发编程,耗时任务处理,进程调用等知识。

第八、九章:讲解 Qt 比较重要的知识,图形视图结构,以及MVD模式;通过这两章的学习,大家会对图形视图有更好的了解。

第十章:本章是独立章节,主要介绍Qt中一些特殊技巧,项目编译,dpi适配、多语言等知识。

第十一章:是我们的企业级项目实战:实现一个视频会议客户端,本项目可以进行多人视频通话,直播,桌面分享等功能,本项目我会从零开始,进行项目搭建,功能调试,bug fixed, 带领大家做一个企业级项目。

希望通过本课程的学习,大家的C++ Qt开发技术能有质的飞越,能找到自己心仪的工作。

下面是本课程一些项目的截图:

1 可以滑动的设置界面(高仿迅雷设置界面)

在这里插入图片描述

2 所有图形的绘制

在这里插入图片描述

3 视频播放器

在这里插入图片描述

4 视频会议

在这里插入图片描述

登陆页面

在这里插入图片描述

桌面共享代码

在这里插入图片描述

项目运行效果

在这里插入图片描述

阶段三:C++ Qt开源项目学习源码分析与应用

C++ OBS课程链接:C++ Qt OBS源码屏幕录制软件开发视频教程_在线视频教程-CSDN程序员研修院

本课程主要讲解OBS源码的编译,OBS功能实现,初始化,显示器录制,窗口的实现录制,以及录制模块源码详细分析,最后基于OBS源码开发了一个录制软件,界面如下:

在这里插入图片描述

主要有如下功能
(1)实现桌面,显示器采集、录制
(2)指定应用程序窗口进行录制
(3)可以选择系统声音,麦克风进行录制
(4)稳定fps 60,高清原画,鼠标不闪,、音视频同步,无卡顿,无延时
(5)可以指定帧率录制,5-60 fps都可以
(6)显示了系统托盘,录制时可以最小化到系统托盘

OBS课程大纲

在这里插入图片描述

OBS源码分析

初始化流程

在这里插入图片描述

OBS录制流程分析

在这里插入图片描述

以上3个课程均提供全部源码,提供答疑服务。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/yao_hou/article/details/133151103

智能推荐

使用nginx解决浏览器跨域问题_nginx不停的xhr-程序员宅基地

文章浏览阅读1k次。通过使用ajax方法跨域请求是浏览器所不允许的,浏览器出于安全考虑是禁止的。警告信息如下:不过jQuery对跨域问题也有解决方案,使用jsonp的方式解决,方法如下:$.ajax({ async:false, url: 'http://www.mysite.com/demo.do', // 跨域URL ty..._nginx不停的xhr

在 Oracle 中配置 extproc 以访问 ST_Geometry-程序员宅基地

文章浏览阅读2k次。关于在 Oracle 中配置 extproc 以访问 ST_Geometry,也就是我们所说的 使用空间SQL 的方法,官方文档链接如下。http://desktop.arcgis.com/zh-cn/arcmap/latest/manage-data/gdbs-in-oracle/configure-oracle-extproc.htm其实简单总结一下,主要就分为以下几个步骤。..._extproc

Linux C++ gbk转为utf-8_linux c++ gbk->utf8-程序员宅基地

文章浏览阅读1.5w次。linux下没有上面的两个函数,需要使用函数 mbstowcs和wcstombsmbstowcs将多字节编码转换为宽字节编码wcstombs将宽字节编码转换为多字节编码这两个函数,转换过程中受到系统编码类型的影响,需要通过设置来设定转换前和转换后的编码类型。通过函数setlocale进行系统编码的设置。linux下输入命名locale -a查看系统支持的编码_linux c++ gbk->utf8

IMP-00009: 导出文件异常结束-程序员宅基地

文章浏览阅读750次。今天准备从生产库向测试库进行数据导入,结果在imp导入的时候遇到“ IMP-00009:导出文件异常结束” 错误,google一下,发现可能有如下原因导致imp的数据太大,没有写buffer和commit两个数据库字符集不同从低版本exp的dmp文件,向高版本imp导出的dmp文件出错传输dmp文件时,文件损坏解决办法:imp时指定..._imp-00009导出文件异常结束

python程序员需要深入掌握的技能_Python用数据说明程序员需要掌握的技能-程序员宅基地

文章浏览阅读143次。当下是一个大数据的时代,各个行业都离不开数据的支持。因此,网络爬虫就应运而生。网络爬虫当下最为火热的是Python,Python开发爬虫相对简单,而且功能库相当完善,力压众多开发语言。本次教程我们爬取前程无忧的招聘信息来分析Python程序员需要掌握那些编程技术。首先在谷歌浏览器打开前程无忧的首页,按F12打开浏览器的开发者工具。浏览器开发者工具是用于捕捉网站的请求信息,通过分析请求信息可以了解请..._初级python程序员能力要求

Spring @Service生成bean名称的规则(当类的名字是以两个或以上的大写字母开头的话,bean的名字会与类名保持一致)_@service beanname-程序员宅基地

文章浏览阅读7.6k次,点赞2次,收藏6次。@Service标注的bean,类名:ABDemoService查看源码后发现,原来是经过一个特殊处理:当类的名字是以两个或以上的大写字母开头的话,bean的名字会与类名保持一致public class AnnotationBeanNameGenerator implements BeanNameGenerator { private static final String C..._@service beanname

随便推点

二叉树的各种创建方法_二叉树的建立-程序员宅基地

文章浏览阅读6.9w次,点赞73次,收藏463次。1.前序创建#include<stdio.h>#include<string.h>#include<stdlib.h>#include<malloc.h>#include<iostream>#include<stack>#include<queue>using namespace std;typed_二叉树的建立

解决asp.net导出excel时中文文件名乱码_asp.net utf8 导出中文字符乱码-程序员宅基地

文章浏览阅读7.1k次。在Asp.net上使用Excel导出功能,如果文件名出现中文,便会以乱码视之。 解决方法: fileName = HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8);_asp.net utf8 导出中文字符乱码

笔记-编译原理-实验一-词法分析器设计_对pl/0作以下修改扩充。增加单词-程序员宅基地

文章浏览阅读2.1k次,点赞4次,收藏23次。第一次实验 词法分析实验报告设计思想词法分析的主要任务是根据文法的词汇表以及对应约定的编码进行一定的识别,找出文件中所有的合法的单词,并给出一定的信息作为最后的结果,用于后续语法分析程序的使用;本实验针对 PL/0 语言 的文法、词汇表编写一个词法分析程序,对于每个单词根据词汇表输出: (单词种类, 单词的值) 二元对。词汇表:种别编码单词符号助记符0beginb..._对pl/0作以下修改扩充。增加单词

android adb shell 权限,android adb shell权限被拒绝-程序员宅基地

文章浏览阅读773次。我在使用adb.exe时遇到了麻烦.我想使用与bash相同的adb.exe shell提示符,所以我决定更改默认的bash二进制文件(当然二进制文件是交叉编译的,一切都很完美)更改bash二进制文件遵循以下顺序> adb remount> adb push bash / system / bin /> adb shell> cd / system / bin> chm..._adb shell mv 权限

投影仪-相机标定_相机-投影仪标定-程序员宅基地

文章浏览阅读6.8k次,点赞12次,收藏125次。1. 单目相机标定引言相机标定已经研究多年,标定的算法可以分为基于摄影测量的标定和自标定。其中,应用最为广泛的还是张正友标定法。这是一种简单灵活、高鲁棒性、低成本的相机标定算法。仅需要一台相机和一块平面标定板构建相机标定系统,在标定过程中,相机拍摄多个角度下(至少两个角度,推荐10~20个角度)的标定板图像(相机和标定板都可以移动),即可对相机的内外参数进行标定。下面介绍张氏标定法(以下也这么称呼)的原理。原理相机模型和单应矩阵相机标定,就是对相机的内外参数进行计算的过程,从而得到物体到图像的投影_相机-投影仪标定

Wayland架构、渲染、硬件支持-程序员宅基地

文章浏览阅读2.2k次。文章目录Wayland 架构Wayland 渲染Wayland的 硬件支持简 述: 翻译一篇关于和 wayland 有关的技术文章, 其英文标题为Wayland Architecture .Wayland 架构若是想要更好的理解 Wayland 架构及其与 X (X11 or X Window System) 结构;一种很好的方法是将事件从输入设备就开始跟踪, 查看期间所有的屏幕上出现的变化。这就是我们现在对 X 的理解。 内核是从一个输入设备中获取一个事件,并通过 evdev 输入_wayland

推荐文章

热门文章

相关标签