QtExamples/README.md
2023-03-10 01:57:24 +08:00

329 lines
20 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<div align=center>
<img src="https://raw.githubusercontent.com/touwoyimuli/FigureBed/blog-imange/img02/IMG_GIRL.png" width="50%"/>
</div>
                         我也不知道为什么,当初就是想放这么一张图在这里~
# QtExamples
![](https://img.shields.io/badge/language-C%2B%2B%20%2F%20QT-orange) ![](https://img.shields.io/github/license/XMuli/QtExamples) ![](https://img.shields.io/badge/powered%20by-XMuli-ff69b4)
![](https://img.shields.io/github/languages/code-size/XMuli/QtExamples) ![](https://img.shields.io/github/stars/XMuli/QtExamples?style=social) ![](https://img.shields.io/github/forks/XMuli/QtExamples?style=social&label=Fork)
<br>
[TOC]
<br>
## 项目介绍
- [x] `Qt``GUI` 基础控件用法,网络;
- [x] `DTK` 重绘控件方式的框架解析;
- [x] `QtCrator` 使用和一些小技巧;
- [x] `Qt` 原理/运行机制理解
  自己所学记录,亦可以互相交流共享学习,<font color=#D0087E size=4 face="幼圆">**有朋自远方互联网而来,不亦悦乎?**</font>
<br>
## 构建环境
该系列的源码,知识文章等均托管于此仓库;主线目标是讲解 QT5 的相关文章。
<font color=#70AD47 size=4 face="幼圆">**开发系统:**</font> `MacOS 10.14-13.x` | `win10 x64 1803-22H2` | `UOS/Deepin 20.x`
<font color=#70AD47 size=4 face="幼圆">**编码软件:** </font> `Qt 5.9-5.15` | `Visual Studio 2015-2019`
<br>
# 正文
## 「第 1 章」 预备知识
- **Windows 系统**
- [在 Win10 环境下安装 QtCreator 5.9.8 作 C++ 的 IDE 开发工具](https://blog.csdn.net/qq_33154343/article/details/103674579)
- [QtCreator 安装 SDK在 MSVC 编译模式下使用 CDB 调试器](https://blog.csdn.net/qq_33154343/article/details/98779698)
- [Win10 安装 QtCreator + Visual Studio 2015 作为 C++ 的 IDE 开发工具](https://blog.csdn.net/qq_33154343/article/details/103755569)
- [Visual Studio 2017 专业版使用最新版 Qt 5.9.2 教程](https://blog.csdn.net/qq_33154343/article/details/78587699)
- [Win10 安装 CLion + CMake + MSVC / MinGW 作 QT 开发](https://blog.csdn.net/qq_33154343/article/details/120070828)
- **MacOS 系统**
- [ MacOS 安装 QtCreator 5.9.8 作 C++ 的 IDE 开发工具](https://blog.csdn.net/qq_33154343/article/details/103231202)
- **Linux 系统**
- [Win10 的 VMware 中安装 UOS 20在 UOS 中安装 QtCreator 及搭建 DTK 开发环境](https://blog.csdn.net/qq_33154343/article/details/103733327)
- [MacOS 安装 Parallels Desktop再安装 UOS 20 + QtCreaor及搭建 DTK 开发环境](https://blog.csdn.net/qq_33154343/article/details/104180794)
- [MacOS 的 VMware Fusionlimian 中安装 Linux Deepin15.11](https://blog.csdn.net/qq_33154343/article/details/102789047)
- [Deepin / UOS 中配置 DTK 开发环境](https://blog.csdn.net/qq_33154343/article/details/112239518)
- [重装 UOS / Deepin V20 后必安装软件(个人习惯)](https://xmuli.blog.csdn.net/article/details/106510975)
- [ArchLinux + DDE 安装教程](https://xmuli.blog.csdn.net/article/details/107696563)
- [对 GNU/Linux 介绍、ArchLinux社区氛围、DDE移植Arch流程](https://blog.csdn.net/qq_33154343/article/details/108378441)
- **通用命令交互**
- [Shell、Bash、CMD、PowerShell 的区别](https://blog.csdn.net/qq_33154343/article/details/123366377)
- [Windows-Terminal 配置 OhMyPosh 美化 GitBash](https://blog.csdn.net/qq_33154343/article/details/120661945)
- [Windows-Terminal 美化 PowerShell 7](https://blog.csdn.net/qq_33154343/article/details/124030501)
<br>
## 「第 2 章」 QT 生成原理/运行机制
- [Make、Makefile、Cmake、QMake 的区别](https://blog.csdn.net/qq_33154343/article/details/98170236)
- [QT 编程中 namespace Ui { class Widget; } 解析](https://blog.csdn.net/qq_33154343/article/details/98122981)
<br>
## 「第 3 章」 常规 GUI 控件
- 一个默认的`Qt Widget`项目 【空】
- [元对象系统 MOC (Meat-Object System) 的对象 MetaObject 和(含动态)属性 Propert 的用法](https://xmuli.blog.csdn.net/article/details/105925608) 【QtMeatObjectEx】
- [QString 在2 81016 进制之间转换](https://blog.csdn.net/qq_33154343/article/details/100860030) 【QtQStringEx】
- [QString 常用的功能函数的介绍及用法](https://blog.csdn.net/qq_33154343/article/details/100860270) 【QtQStringFunEx】
- [QSlider + QAbstractSlider 滑动条的介绍及用法](https://blog.csdn.net/qq_33154343/article/details/100944831)【QtQSliderEx】
- [QSlider + QScrollBar + QProgressBar 移动条、滚动条 、进度条)的联动](https://blog.csdn.net/qq_33154343/article/details/101003081)【QtQProgressBarEx】
- [QSlider 仪表盘 + QLCD_NUmber 数值显示 的介绍及用法](https://blog.csdn.net/qq_33154343/article/details/101003115)【QtQdialQLCDEx】
- [QTime / QDate / QDateTime 时间日期 + QTimer 定时器的的介绍及用法](https://blog.csdn.net/qq_33154343/article/details/101040841)【QtDateTimeEx】
- [QComboBox 下拉列表框 + QPlainTextEdit 多行富文本编辑器的介绍及用法](https://blog.csdn.net/qq_33154343/article/details/101127870) 【QtQcomboBoxEx】
- [QListWidget 列表控件 + QToolButton 工具按钮的介绍及用法](https://blog.csdn.net/qq_33154343/article/details/101314908)【QtQListWidgetEx】
- [QTreeWidget 目录树组件 + QDockWidget 停靠区域组件的介绍及用法](https://blog.csdn.net/qq_33154343/article/details/103467757)【QtQTreeWidgetEx】
- [QTableWidget 表格组件的的介绍及用法](https://blog.csdn.net/qq_33154343/article/details/103485154)【QtQTableWidgetEx】
- [QFileSystemModel 数据模型获取本机文件系统用法](https://blog.csdn.net/qq_33154343/article/details/103544820)【QtQFileSystemModelEx】
- [getOpenFileName 标准对话框和自定义对话框的用法](https://blog.csdn.net/qq_33154343/article/details/103545066)【QtQDialogEx】
- [QTableView 表格视图 + QStandardItemModel 标准项模型的用法](https://blog.csdn.net/qq_33154343/article/details/103572418)【QtQStandardItemModelEx】
- [自定义和标准对话框的用法](https://blog.csdn.net/qq_33154343/article/details/103606981)【QtCustomDialogEx】
- [MDI(Multi-document Interface) 多文档界面的实现 + QMdiArea 的用法](https://blog.csdn.net/qq_33154343/article/details/103625380)【QtMDIEx】
- Qt 修改 `*.svg` 文件的颜色【ExChangeSVGColor】
- [创建 QKeySequenceEdit() 后,显示方块■◆乱码](https://blog.csdn.net/qq_33154343/article/details/125775732)
<br>
## 「第 4 章」 网络编程
- [QHostInfo 主机信息查询 + QNetworkInterface 查询 IP 等](https://blog.csdn.net/qq_33154343/article/details/103707035)【QtQHostInfoEx】
- [TCP 通信之 QTcpServer + QTcpSocket服务器和客户端通讯](https://blog.csdn.net/qq_33154343/article/details/103759735)【QtTcpEx】
- [UDP 通信之 QUdpSocket + unicast 单播 / broadcast 广播 / multicast 组播](https://blog.csdn.net/qq_33154343/article/details/103789843)【QtUdpEx】
- [QNetworkAccessManager + QNetworkReply + QNetworkRequest 协同实现高层网络的操作 HTTP](https://blog.csdn.net/qq_33154343/article/details/103811638) 【QtHttpEx】
<br>
## 「第 5 章」 DTK 重绘控件原理解析 / 自定义 QStyle
- **DTK 历史发展**
- [DTK 的历史起源、发展,和简单入门](https://xmuli.blog.csdn.net/article/details/106189533) [★★]
- [Deepin、DDE 的历史起源与发展(附 Deepin 所有版本的 DDE 效果图)](https://xmuli.blog.csdn.net/article/details/106195055) [★★]
- [UOS/Deepin 中配置 DTK 开发环境](https://xmuli.blog.csdn.net/article/details/112239518) [★]
- [Deepin / DTK 文档参考资料集合](https://xmuli.blog.csdn.net/article/details/112244150) [★★★]
- **背景知识**
- QStyle与QPen、QPush、QPalette、QPainter之间的区别
- [DTK 基础教程:自定义控件规范](https://xmuli.blog.csdn.net/article/details/108536588) [★]
- [QStyle 设置界面的外观和 QCommonStyle 继承关系图讲解和使用](https://blog.csdn.net/qq_33154343/article/details/104367878) [★★]
- [Qt 之 proxy() 代理函数探究](https://blog.csdn.net/qq_33154343/article/details/101571843)
- **感性理解👀**
- [QT 控件在 UOS 20 + MaOS10.14 下的显示不同的 QStyle「即样式换肤效果」](https://blog.csdn.net/qq_33154343/article/details/104305154)
- [QT 控件在 Win 10 + Deepin 10.15 下的显示不同的 QStyle「即样式换肤效果」](https://blog.csdn.net/qq_33154343/article/details/100148552)
- **DTK 源码解析架构🤔**
- [QStyle / DTK 重绘 Qt-GUI 已有控件,举例 QScrollBar](https://blog.csdn.net/qq_33154343/article/details/104537944) [★★]
- [QStyle / DTK重绘自定义需求控件举例 MySwitchButton](https://blog.csdn.net/qq_33154343/article/details/104987446) [★★]
- [DTK 基础教程:自定义控件规范](https://xmuli.blog.csdn.net/article/details/108536588) [★★]
- [DTK常用和测试代码片 ](https://xmuli.blog.csdn.net/article/details/106187959)
- [DTK 每日自动更新其 API 文档](https://xmuli.blog.csdn.net/article/details/108756933)
- **DTK 项目实战**
- [更换 QT 应用程序的界面 UI实现换肤展示自带其它 QStyle 样式](https://blog.csdn.net/qq_33154343/article/details/100148552)
- [QStyle 自定义重绘 QScrollBar](https://blog.csdn.net/qq_33154343/article/details/100943187)
- [QStyle 自定义重绘 QRubberBand 控件](https://blog.csdn.net/qq_33154343/article/details/100588428)
- [QStyle 自定义重绘滑动条 QSlider 控件](https://blog.csdn.net/qq_33154343/article/details/100545769)
- [ QStyle 自定义重绘滑动条 QSlider 控件二](https://blog.csdn.net/qq_33154343/article/details/100942637)
- [QStyle 重绘时 sizeFromContents() 未被调用的分析](https://blog.csdn.net/qq_33154343/article/details/100941134)
- [QStyle 之 PenStyle 的 CustomDashLine 使用](https://blog.csdn.net/qq_33154343/article/details/100659576)
- [Deepin 开发任务栏网速插件 lfxSpeed](https://xmuli.blog.csdn.net/article/details/110672252) [★]
- [Deepin 任务栏网速插件推荐 NetSpeed (重构 lfxSpeed)](https://xmuli.blog.csdn.net/article/details/113573870) [★★]
- [Deepin 自定义修改窗口圆角大小](https://xmuli.blog.csdn.net/article/details/109232878) [商业开源项目示例 ★★]
- [Deepin 愿望墙:社区插件等需求调研结果](https://xmuli.blog.csdn.net/article/details/112243878) [社区练手参考]
<br>
## 「第 6 章」 QT / IDE 乱码根因和解决
- **此两篇足够**
- 极简图表解释 --> [古文码、口字码、符号码、问号码、棍拷码](https://blog.csdn.net/qq_33154343/article/details/99617767) [★★★★★]
- 极繁根因分析 --> [愿编程不再乱码(含Qt)-根因深究](https://blog.csdn.net/qq_33154343/article/details/120661967) [★★★★★]
- **产出 “极繁根因分析” 一文的途中的曲折认知**
- [乱码原因产生和解决方案](https://xmuli.blog.csdn.net/article/details/109567352)
- [QT 中文乱码问题](https://blog.csdn.net/qq_33154343/article/details/78686103) [★★]
- [QT5 中文乱码解决](https://blog.csdn.net/qq_33154343/article/details/95344312)
- [借 QT 中文乱码谈谈 Coding 中的编码问题](https://blog.csdn.net/qq_33154343/article/details/78686075)
<br>
## 「第 7 章」 IDE 技巧
- **Qt Creator**
- [QtCreator 界面的基本组成简介和入门使用讲解(Win + Linux + MacOS](https://blog.csdn.net/qq_33154343/article/details/103942733)
- [QtCreator 设置代码美化 Astyle 之 Artistic](https://blog.csdn.net/qq_33154343/article/details/101397429)
- [QtCreator 关闭 .cpp 文件右侧的黄色警告](https://blog.csdn.net/qq_33154343/article/details/102943623)
- [QtCreator 中自定义项目例子置于“欢迎-实例”中](https://blog.csdn.net/qq_33154343/article/details/115049715)
- [QtCreator 中自定义项目例子置于“欢迎-实例”中](https://xmuli.blog.csdn.net/article/details/115049715)
- [Qt 项目用 Doxygen 生成 .qch嵌入文档到 Assistants](https://blog.csdn.net/qq_33154343/article/details/114580630)
- [小技巧Design 设计师里,无法拖拽 action 到 toolbar 里](https://blog.csdn.net/qq_33154343/article/details/100168170)
- [小技巧QtCreator 用快捷键秒实现,声明在基类中重写的派生类(纯)虚函数](https://blog.csdn.net/qq_33154343/article/details/104457739)
- [小技巧:设置 QToolBox 的每一页 page 的使用单独的布局QTabWidget 同理)](https://blog.csdn.net/qq_33154343/article/details/100185025)
- **Visual Studio**
- [VS2017 调试 Qt 源码,安装 PDB](https://blog.csdn.net/qq_33154343/article/details/120339797)
- [VS2019 调试 Qt5 时 QString 显示为内存地址而非字符串](https://xmuli.blog.csdn.net/article/details/116244865)
- [Visual Studio 实际仅增删数行,却显示文件所有行均发生变更](https://blog.csdn.net/qq_33154343/article/details/123366419)
- [Visual Studio 生成 .vs 隐藏文件夹,导致 Git 命令错误](https://blog.csdn.net/qq_33154343/article/details/123366493)
- [Win10 的 20H2 使用 VS 2019拖曳窗口会崩溃](https://blog.csdn.net/qq_33154343/article/details/116244656)
- [Visual Studio 2019 进行远程调试](https://blog.csdn.net/qq_33154343/article/details/123855765)
- [Visual Studio 断点调试之箭头偏移进错函数,捉🐛记](https://blog.csdn.net/qq_33154343/article/details/124482152)
- [微软 SDK 导致的项目编译失败哦~](https://blog.csdn.net/qq_33154343/article/details/124736720)
- [一个微软自带的 Notepad 所导致的问题](https://blog.csdn.net/qq_33154343/article/details/123508220) 【ExCRLF】
<br>
## 「第 8 章」 提交规范和发布 QT 程序
- [约定式提交规范](https://www.conventionalcommits.org/)
- [修改 Doxygen 主题,生成 Qt 风格的文档](https://xmuli.blog.csdn.net/article/details/114591725)
- [QT 项目在 Windows 平台上面发布成可执行程序](https://blog.csdn.net/qq_33154343/article/details/96448388)
- [QT 项目在 MacOS 平台上面发布成可执行程序](https://xmuli.blog.csdn.net/article/details/96448938#comments)
- [QT 项目在 Linux 平台上面发布成可执行程序](https://blog.csdn.net/qq_33154343/article/details/96448621)
- [Linux 中用 dh_make 将 Qt + CMake 项目打包为 deb 文件](https://blog.csdn.net/qq_33154343/article/details/123778207)
<br>
## 「第 9 章」 高级
- [Lambda 表达式详解](https://blog.csdn.net/qq_33154343/article/details/125775706)
- [Qt 信号和槽原理分析](https://xmuli.blog.csdn.net/article/details/115305903) [★★★]
- [QT 项目 CMake 设置国际化支持](https://xmuli.blog.csdn.net/article/details/114439385)
- [Qt4 和 Qt5 的信号和槽的用法差异](https://xmuli.blog.csdn.net/article/details/118346008)
- [高分屏、分辨率、DPI、PPI及 Qt 处理高分屏](https://xmuli.blog.csdn.net/article/details/108905279) [★★]
- [如何给上游 QT 提交 BUG 反馈和贡献代码 PATCH](https://xmuli.blog.csdn.net/article/details/107220867) [★★★★]
<br>
- [如何构建 QT55.15](https://xmuli.blog.csdn.net/article/details/114259155)
- [在 Mac 编译成功运行 QT 5.15 源码Debug + Release 版本](https://xmuli.blog.csdn.net/article/details/114259186)
- [一个完整的 Linux / Unix学习系列基础 / 编译 / 进程间通信 / 信号 / 守护进程 / 多线程)](https://xmuli.blog.csdn.net/article/details/105847532)【[linuxExample](https://github.com/xmuli/linuxExample)】[★★★★★]
<br>
## 「第 10 章」 项目
- [QT5/C++项目QT象棋【初版】](https://xmuli.blog.csdn.net/article/details/80931400) [★★★★★]
- [QT5/C++项目基于QT的跨平台网络对战象棋](https://blog.csdn.net/qq_33154343/article/details/89284983) [★★★★★]
- [QT5/C++项目基于QT的跨平台网络对战象棋](https://blog.csdn.net/qq_33154343/article/details/89285968) [★★★★★]
- [QT5/C++项目基于QT的跨平台网络对战象棋](https://blog.csdn.net/qq_33154343/article/details/89286553) [★★★★★]
- [项目实战:仿 QQ 的单聊,属 GUI 界面 ](https://blog.csdn.net/qq_33154343/article/details/79341062)
- [项目实战:仿 QQ 的群聊,属 GUI 界面](https://blog.csdn.net/qq_33154343/article/details/96437681)
- [项目实战C 语言写 Socket 的 TCP 聊天,属 CUI 控制台](https://blog.csdn.net/qq_33154343/article/details/81808722)
- [项目实战C 语言写 Socket 的 UDP 聊天,属 CUI 控制台](https://blog.csdn.net/qq_33154343/article/details/81809168)
- [项目实战QT5 的 Quick 仿写 QQ 2019 简洁版的登录界面,含 GUI 界面](https://blog.csdn.net/qq_33154343/article/details/80448144)
<br>
## 新手过来
  <font color=#D0087E size=4 face="幼圆">**新手**</font> 在深思熟虑后踏入的编程,容易遭遇如下如下几点:
1. 语言语法不熟悉🤦‍♀️
2. 相关 IDE 安装、配置不会;不懂如何创建自己所需的工程项目🤦‍♀️
3. 基础控件不认识,不会用🤦‍♀️
4. 难以🔍可阅读、成体系的低级博客多为高热度Title文章🤦
5. ...开始步入正轨👣
6. 也不知学编程到是底在学习什么❓👀
7. ...修行靠个人👩‍💻
<br>
## 分享所想
1. 自己想学一遍 GUI 控件
2. 帮助真的新手实现0→1的入门解决👆的12346问题
3. 学习于网络,回馈于网络
4. 希望永久被🔍引擎检索到,以博客形式发表📝
<br>
## 我所想说🙋‍♀️
<font color=#D0087E size=4 face="幼圆">虽然不盈利会累但因自由和开源软件而写的开心ya 鸭鸭</font>
<br>
## Star 增长
[![Star History Chart](https://api.star-history.com/svg?repos=XMuli/QtExamples&type=Date)](https://star-history.com/#XMuli/QtExamples&Date)
<br>
## 贡献
若是帮助到了你,或者觉得有用,可以点击该项目的的 <font color=#D0087E size=4 face="幼圆">**⭐Star** </font><font color=#D0087E size=4 face="幼圆">**🍴 Fork**</font> 的两个图标,方便抬手之间,表示点个赞,手有余香
<details>
<summary> <b>当然也可以赠与一杯冰阔落[捐赠/打赏 ← 点击展开二维码]</b></summary>
<p> - If you have something to learn from the project, you can also invite me to share a glass of Fat House Ice and Coke. - </p>
<pre><img src="https://fastly.jsdelivr.net/gh/XMuli/xmuliPic@pic/2022/202302282339037.png" width="80%"/></pre>
</details>
<br>
## 作者
[![alt text](https://img.shields.io/badge/QQ-%E5%81%95%E8%87%A7-brightgreen)](https://sighttp.qq.com/authd?IDKEY=31f3ef7312b39e2c8dc822ae2f4c3b3118e1a6f31cc83373) : 直接和我聊天~
[![alt text](https://img.shields.io/badge/GitHub-XMuli-brightgreen)](https://github.com/XMuli) : 查看我的主页
[![alt text](https://img.shields.io/badge/Blog-%E5%81%95%E8%87%A7%E7%9A%84%E5%B0%8F%E7%AB%99-ff69b4)](https://ifmet.cn/) : 好奇我的小窝
[![alt text](https://img.shields.io/badge/Blog-国内镜像-ff69b4)](https://blog.csdn.net/qq_33154343) :浏览量 100W+
<br>
## 协议
<img src='https://raw.githubusercontent.com/touwoyimuli/FigureBed/blog-imange/img/20190709052148.jpg' width='240' height='127'/>
<font color=#70AD47 size=4 face="幼圆">**[偕臧](https://ifmet.cn/about/site.html)** </font> 博客代码基于Apache License 2.0 协议进行分发和使用,更多信息参见 [协议文件](/LICENSE)。
<img src='https://raw.githubusercontent.com/touwoyimuli/FigureBed/blog-imange/img/20190709052153.jpg' width='127' height='127'/>
<font color=#70AD47 size=4 face="幼圆">**[偕臧](https://ifmet.cn/about/site.html)** </font> 所含文章使用以下协议进行保护:[署名-非商业性使用-禁止演绎](http://creativecommons.org/licenses/by-nc-nd/3.0/cn/)。