AwesomeQt:最小的Qt6系列迷你版本教程发布!
AwesomeQt:最小的Qt6系列迷你版本教程发布!
嘿!这里是CharlieChen!
Awesome-Embedded-Learning-Studio/Tutorial_AwesomeQt: https://github.com/Awesome-Embedded-Learning-Studio/Tutorial_AwesomeQt
这个仓库是一个迷你的小Qt集中加油站,这是我们很早的约定!笔者尝试接触Qt 3年多,马上第四年。虽然不算老油条,自己也觉得自己就是一个Qt新人。
但是每一次想起来自己第一次接触 Qt 的时候,对着QObject::connect的四个参数发呆了一整个下午,后来又因为忘记加Q_OBJECT宏收获了一个莫名其妙的 vtable 错误。信号槽跨线程翻车、对象树内存管理踩雷、MOC 生成的代码里迷失方向……这些坑一个没落下。也算是充实自己坎坷的Qt生涯!
Github上的仓库大多数都在展示自己优秀的Qt作品,但是似乎真的没有很多从方方面面层级教如何写Qt的仓库。笔者翻看了一下,要不就是围绕核心Qt5的老版本,要不就是有些太难啃。笔者突然想到——自己用Qt写过一些普通的小玩意,虽说不优秀,但是也算是趟过泥水的,为什么不把这些全部收集起来,做一个小小的全栈Qt小仓库并且公开维护呢?这就是这个小仓库的由来!
这个版本有什么?
Beginner教程的更新完全,进入维护期!
这个版本可能会让老手比较失望,因为笔者更新的部分是一些比较基础的内容,比起来原理更加像是一个简单的Qt API使用Handbook!虽然搞了好几个月,不过好歹是慢慢发展起来逐步充实内容了!追随这个系列的朋友知道——
- 教程的最开始是环境搭建部分!覆盖了 Qt 6.9.1 在 Windows、Linux 和 WSL2 上的完整安装流程,以及 VS Code、CLion、Qt Creator 三种 IDE 的配置方式,加上一个从零跑通的最小 CMake 工程 —— 这是所有后续内容的基础。
- QtBase 核心模块,从 QObject 元对象系统和信号槽讲起,到字符串处理、容器、QVariant、内存管理、事件循环、文件读写、多线程、QProcess、定时器、插件系统、国际化、日志和正则表达式,最后收在 JSON/XML 解析上。学完这些,Qt 的核心机制基本就通了。这部分各个平台正在更新!
- 在之后是——QtGui ,涵盖 QPainter 绘图、坐标变换、QImage/QPixmap 图像处理、字体渲染、QOpenGLWidget 嵌入 OpenGL,以及拖放系统。这部分是后续自定义控件和图形密集型应用的基础。
- QtWidgets 是整个入门层的大头,前面讲主题能力(布局系统、事件处理、Model/View 架构、QSS 样式表、自定义绘制、对话框体系、QMainWindow 主窗口、图形视图框架、属性动画、MDI 多文档界面),后面是按控件分类的速查手册 —— 按钮类、输入类、显示类、容器类、列表/树/表格视图、对话框,所有标准 Widget 都有独立的文章和配套示例!
- 网络编程部分有 6 篇,TCP、UDP、HTTP、WebSocket、SSL/TLS 和串口通信各一篇,读完能覆盖绝大多数 Qt 网络场景。扩展模块 25 篇,从 SQL 数据库和 QtCharts 图表,到 Multimedia 播放器/相机、SVG、Bluetooth、NFC、MQTT、Modbus、SCXML 状态机、Qt3D、QtPdf、HttpServer、WebEngine、RemoteObjects、空间音频和语音合成,基本把 Qt 6 的扩展生态扫了一遍。只是在玩imx6ull移植的时候,粗粗的过了一轮!
- QML笔者不太熟悉!笔者只好偷偷把自己的 QML学习笔记偷过来组成了新手章节(这方面我纯新手!纯的!),语法基础、属性绑定、QtQuick Controls、C++ 与 QML 互操作、动画/状态、Model/Delegate 模式、Canvas 和粒子系统的最最基本的使用,笔者跟着Qt Example体验了一下hhh
一些各种常见组件的手搓!
笔者当时思考仓库发展的时候稍微想了一下,好用的控件库到处都是,但是好像太多的人讲这些如何做出来。那我就来加入大军!现在一些组件笔者在慢慢实现!这部分也会单独出教程,不过不会发布到平台上(嗯。。。我不太喜欢这样倒教程,怕污染互联网,写的东西太菜不够看!),而是按照Github静态网站的形式提供URL链接!
接下来我们做什么
这说啥了!给我自己上难度啃Qt去了!啃的结果就是后续更加深入基层原理的Qt教程,以及更多组件(如果他们确实有用的话!)的教程咯!
更新的内容不多,但是有迷你的雏形了!所以是v0.1.0!
仓库地址就在这里,欢迎Star支持一下!或者Fork!:https://github.com/Awesome-Embedded-Learning-Studio/Tutorial_AwesomeQt
文档站,如果是想看优先,这里的文档站会满足您的需求!(大概!):https://awesome-embedded-learning-studio.github.io/Tutorial_AwesomeQt/
有任何意见?速速来这里反馈:https://github.com/Awesome-Embedded-Learning-Studio/Tutorial_AwesomeQt/issues,笔者第一时间响应!
