QtExamples/README.md
2021-09-02 22:29:21 +08:00

269 lines
17 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.

# QtExamples:
<div align=center>
<img src="https://raw.githubusercontent.com/touwoyimuli/FigureBed/blog-imange/img02/IMG_GIRL.png" width="50%"/>
</div>
                                我也不知道为什么,就是想放这么一张图在这里。
<br>
[TOC]
<br>
## 项目介绍:
  ✅ `Qt``GUI` 基础控件用法,网络;
  ✅ `DTK` 重绘控件方式的框架解析;
  ✅ `QtCrator` 使用和一些小技巧;
  ✅ `Qt` 原理/运行机制理解
  自己所学记录,亦可以互相交流共享学习,<font color=#D0087E size=4 face="幼圆">**有朋自远方互联网而来,不亦悦乎?**</font>
<br>
## 关于 QT 系列文章:
会将该系列的源码,文章等系列,全部托管于这个仓库,该系列的主线任务是讲解 **Qt** 的相关文章。
<font color=#70AD47 size=4 face="幼圆">**开发系统:**</font> `MacOS 10.14.6 (18G103)` | `win10 x64 专业版 1803` | `UOS 20 x64 专业版 `
<font color=#70AD47 size=4 face="幼圆">**编码软件:** </font> `Qt 5.9.8+` | `Qt Creator 4.8.2 (Enterprise)`
<font color=#70AD47 size=4 face="幼圆">**编码语言:**</font>![](https://img.shields.io/badge/language-c++-orange.svg)
<br>
# 文章系列:
## 第一部分:预备知识
- **windows 系统:**
- [`windows10`环境下安装`Qt Creator5.9.8`作为`c++`的**IDE**开发工具,学习和使用**qt** (最佳推荐)](https://blog.csdn.net/qq_33154343/article/details/103674579)
- [Qt Creator 安装SDK在MSVC编译模式下使用CDB调试器](https://blog.csdn.net/qq_33154343/article/details/98779698)
- [`windows`环境下安装`Qt Creator` + `Visual Studio 2015`作为`c++`的`IDE`开发工具,学习和使用**qt** (备选)](https://blog.csdn.net/qq_33154343/article/details/103755569)
- [`windows`环境下安装`Qt Creator 5.9` + `Visual Studio 2017专业版 ` 参考此文 (备选)](https://blog.csdn.net/qq_33154343/article/details/78587699)
- [Win10上CLion、CMake、MSVC/MinGW配置Qt开发](https://blog.csdn.net/qq_33154343/article/details/120070828)
<br>
- **MacOS 系统:**
- [`MacOS10.14.6`环境下安装`QtCreator5.9.8`作为`c++`的**IDE**开发工具,学习和使用**qt**(推荐)](https://blog.csdn.net/qq_33154343/article/details/103231202)
<br>
- **Linux 系统:**
- [在win10里面的VMware安装UOS20在uos20里面安装QtCreator配置dtk开发环境](https://blog.csdn.net/qq_33154343/article/details/103733327)
- [MacOS10.14安装虚拟机Parallels_Desktop安装UOS20和 QtCreaor搭建dtk开发环境](https://blog.csdn.net/qq_33154343/article/details/104180794)
- [在macOS 10.14的虚拟机VMware Fusionlimian里面安装deepin15.11Linux](https://blog.csdn.net/qq_33154343/article/details/102789047)
- [重装uos/deepin v20后必安装软件(个人习惯)](https://xmuli.blog.csdn.net/article/details/106510975)
- [ArchLinux + DDE 安装教程](https://xmuli.blog.csdn.net/article/details/107696563)
<br>
- **IDE 基础讲解:**
- [Qt Creator` 此**IDE**的界面基本组成和入门使用讲解(Win,Linux,MacOS搭配不同版本 Qt)](https://blog.csdn.net/qq_33154343/article/details/103942733)
<br>
## 第二部分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>
## 第三部分:常用 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】
<br>
## 第四部分:网络编程
- [主机信息查询`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】
- [`Upd`通信之`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>
## 第五部分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)
- **感性理解👀:**
- [应用软件在「UOS20和 MaOS10.14下」显示应用不同的QStyle「即所有控件的样式换肤」](https://blog.csdn.net/qq_33154343/article/details/104305154)
- [应用软件在「windows10 和 deepin10.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/106187959)
- [DTK 每日自动更新其 API 文档](https://xmuli.blog.csdn.net/article/details/108756933)
- [DTK 基础教程:自定义控件规范](https://xmuli.blog.csdn.net/article/details/108536588) [★★]
<br>
## 第六部分Qt / IDE 出现乱码原因和解决:
- [乱码原因产生和解决方案](https://xmuli.blog.csdn.net/article/details/109567352) [★★]
- [ 输出乱码原因:古文码、口字码、符号码、问号码、棍拷码](https://blog.csdn.net/qq_33154343/article/details/99617767)
- [qt5 中文乱码解决](https://blog.csdn.net/qq_33154343/article/details/95344312)
- [Qt字符串有中文编译不通过解决方法](https://blog.csdn.net/qq_33154343/article/details/79130275)
- [乱码原因Qt版本_附上语文的pdf版本](https://blog.csdn.net/qq_33154343/article/details/79039644)
- [qt中文乱码问题](https://blog.csdn.net/qq_33154343/article/details/78686103)
- [借Qt中文乱码谈谈Coding中的编码问题](https://blog.csdn.net/qq_33154343/article/details/78686075)
<br>
- [Qt4和Qt5的信号和槽的使用差异](https://xmuli.blog.csdn.net/article/details/118346008)
- `qt`中 Lambda 表达式
<br>
## 第七部分QtCreator 的使用小技巧:
- [QtCreator设置代码美化 astyle 之 Artistic](https://blog.csdn.net/qq_33154343/article/details/101397429)
- [Qt Creator 关闭.cpp文件右侧的黄色警告](https://blog.csdn.net/qq_33154343/article/details/102943623)
- [小技巧Design设计师里无法拖拽action到toolbar里](https://blog.csdn.net/qq_33154343/article/details/100168170)
- [小技巧:设置`QToolBox`的每一页page的使用单独的布局`QTabWidget`同理)](https://blog.csdn.net/qq_33154343/article/details/100185025)
- [小技巧QtCreator用快捷键秒实现声明在基类中重写的派生类(纯)虚函数](https://blog.csdn.net/qq_33154343/article/details/104457739)
- [VS2019调试Qt5时QString显示为内存地址而非字符串](https://xmuli.blog.csdn.net/article/details/116244865)
<br>
## 第八部分:提交规范和发布 Qt 程序:
- [约定式提交规范](https://www.conventionalcommits.org/zh-hans/v1.0.0-beta.4/)
- [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)
- [如何给上游 Qt 提交 Bug 反馈和贡献代码 PATCH](https://xmuli.blog.csdn.net/article/details/107220867)
- [Qt 项目用 doxygen 生成 .qch嵌入文档到 Assistants](https://xmuli.blog.csdn.net/article/details/114580630)
- [修改 Doxygen 主题,生成 Qt 风格的文档](https://xmuli.blog.csdn.net/article/details/114591725)
- [QtCreator 中自定义项目例子置于“欢迎-实例”中](https://xmuli.blog.csdn.net/article/details/115049715)
<br>
## 第 九部分:高级
- [高分屏、分辨率、DPI、PPI及 Qt 处理高分屏](https://xmuli.blog.csdn.net/article/details/108905279)
- [Qt 项目(Cmake)设置国际化支持](https://xmuli.blog.csdn.net/article/details/114439385)
- [如何构建 QT55.15](https://xmuli.blog.csdn.net/article/details/114259155)
- [在 Mac 编译成功运行 qt5.15 源码debug 和 release 版本](https://xmuli.blog.csdn.net/article/details/114259186)
- [Qt 信号和槽原理分析](https://xmuli.blog.csdn.net/article/details/115305903)
<br>
## 第十部分:项目
### 网络
- [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)
- [项目实战Qt5C++TCP的C/S的聊天小程序 (带界面 GUI](https://blog.csdn.net/qq_33154343/article/details/79341062)
- [项目实战仿QQ的QQ简洁版2019群聊项目带界面 GUI](https://blog.csdn.net/qq_33154343/article/details/96437681)
- [项目实战Small exampleC:Socket之Tcp编程 [终端 Terminal]](https://blog.csdn.net/qq_33154343/article/details/81808722)
- [项目实战Small exampleC:Socket之UDP编程 [终端 Terminal]](https://blog.csdn.net/qq_33154343/article/details/81809168)
- [项目实战Qt5Quick模仿扣扣登录界面[小程序]](https://blog.csdn.net/qq_33154343/article/details/80448144)
<br>
### 其它
- [更换`Qt`应用程序的界面`UI`,实现换肤,改用自带其他默认`QStyle`风格样式](https://blog.csdn.net/qq_33154343/article/details/100148552)
- [`QStyle`自定义重绘滑动条`QSlider`控件](https://blog.csdn.net/qq_33154343/article/details/100545769)
- [`QStyle`自定义重绘`QRubberBand`控件](https://blog.csdn.net/qq_33154343/article/details/100588428)
- [重绘的`QStyle`中`sizeFromContents`()没有被调用](https://blog.csdn.net/qq_33154343/article/details/100941134)
- [`QStyle`之`PenStyle`的`CustomDashLine`使用](https://blog.csdn.net/qq_33154343/article/details/100659576)
- [`QStyle`自定义重绘滑动条`QSlide`r控件二](https://blog.csdn.net/qq_33154343/article/details/100942637)
- [QStyle自定义重绘`QScrollBar`](https://blog.csdn.net/qq_33154343/article/details/100943187)
- [Deepin 自定义修改窗口圆角大小](https://xmuli.blog.csdn.net/article/details/109232878) [商业开源项目★★★]
- [Deepin 开发任务栏网速插件 lfxSpeed](https://xmuli.blog.csdn.net/article/details/110672252) [★★]
- [Deepin 愿望墙:社区插件等需求调研结果](https://xmuli.blog.csdn.net/article/details/112243878) [社区练手参考]
- [Deepin 任务栏网速插件推荐 lfxNet (重构 lfxSpeed)](https://xmuli.blog.csdn.net/article/details/113573870) [★★★★]
<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>
## 贡献:
若是帮助到了你,或者觉得有用,可以点击该项目的的<img src="https://raw.githubusercontent.com/touwoyimuli/FigureBed/master/project_log/20190709023321.png" height="18" width="18"/><font color=#D0087E size=4 face="幼圆">**Star**</font><img src="https://raw.githubusercontent.com/touwoyimuli/FigureBed/master/project_log/20190709023317.png" height="18" width="18"/><font color=#D0087E size=4 face="幼圆">**Fork**</font> 的两个图标,方便抬手之间,表示点个赞,手有余香
<br>
## 作者:
[偕臧 | xmuli ](https://ifmet.cn)
<br>
## 协议:
<img src='https://raw.githubusercontent.com/touwoyimuli/FigureBed/blog-imange/img/20190709052148.jpg' width='240' height='127'/>
<font color=#70AD47 size=4 face="幼圆">**偕藏:** </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="幼圆">**偕藏:** </font> 所含文章使用以下协议进行保护:[署名-非商业性使用-禁止演绎](http://creativecommons.org/licenses/by-nc-nd/3.0/cn/)。