QtExamples/README.md
2020-01-07 00:00:37 +08:00

194 lines
14 KiB
Markdown
Raw Permalink 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:
<img src="https://raw.githubusercontent.com/touwoyimuli/FigureBed/blog-imange/img/20190818185031.png"/>
                                我也不知道为什么,就是想放这么一张图在这里。
<br>
## 项目介绍:
  我的编程困难解决最初得益于于热心网友的自由帮助,起初还是一杯纯牛奶;有曾经遇到过简单但是却无法解决的基础问题,但是奈何网上的偏向基础的小白文章很少,尤其是真的某一个系列更是几乎没有,我曾得到过他们的帮助,对的,自由且免费的帮助😄😄; 现如今在力所能及的将自己领域的知识积累都分享出来有尤其是从0→1的入门文章写成一个系列会比较有趣文章不会有广告也不会去搞公众号广告之流的去盈利额外发展为副业而影响阅读体验和技术的这份单纯也是为了能够被🔍引擎检索到而不是只能在朋友圈流传几天受恩惠和感谢互联网精神愿将个人的项目或经验整理成博客的形式也提供给一起大家学习探讨与交流 。
<br>
虽然这样子不会盈利也会比较累但是我因为自由和开源软件而写的开心ya 鸭鸭
————————————————
<br>
  Qt5 各个控件使用的一个例子、以及一些底层原理或者技巧性的理解,即是自己所学记录,亦可以互相交流共享学习,**有朋自远方互联网而来,不亦说乎?**
<br>
  刚大学毕业,大二开始正式(日以继夜的敲)学习c/c++路线知识但今年已经的毕业虽然学习过程中距今学习qt知识也有一年多了中间有写一些比如[**中国象棋**](https://blog.csdn.net/qq_33154343/article/details/89284983)**QQ**(的 [登录](https://blog.csdn.net/qq_33154343/article/details/80448144)/ [私聊](https://blog.csdn.net/qq_33154343/article/details/79341062)、[群聊](https://blog.csdn.net/qq_33154343/article/details/96437681)等功能),**但是却总是感觉有一种半路出家的学习qt的柑橘**,想着`c++`的知识还算学习的比较系统且完备(个人感觉)。一直在想要不要过的轻松点把qt给**推到重来**期间犹豫不定工作的话用到相关知识再去百度谷歌一下够用即可后面或许会去学习其他部分的知识qt也许只是一个过渡呢但是写着写着发现这个跨平台是真的好用越发发现其设计的简洁、方便还带一种设计的美感让我逐渐沉迷其中近日想清楚了**下定决心,还是推倒重来**全过程的熟悉和了解的qt的所有相关或许期间会比较辛苦(毕竟还附带同时维护两个blog和一个github)但是我想着以qt为媒介学会使用、思想、架构设计、经验或许会耗时一两年吧倘若那个时候这个系列也已经写完了的话应该对这个也有一定的认知到时候再去接触学习更高的平台和架构思想应该会有较大的帮助。算是一个人生今后的一个短暂规划学习不用急于求成而焦虑自然水到渠成。
                                             2019-08-18
<br>
## 说明:
 会将该系列的源码,文章等系列,全部托管于这个仓库,该系列的主线任务只是讲解**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)
<font color=#70AD47 size=4 face="幼圆">**支持平台:**</font>![](https://img.shields.io/conda/pn/conda-forge/qt?style=plastic)
<br>
# 项目文章系列:
## 第一部分:预备知识
- [`windows10`环境下安装`Qt Creator5.9.8`作为`c++`的**IDE**开发工具,学习和使用**qt** (最佳推荐)](https://blog.csdn.net/qq_33154343/article/details/103674579)
- [`MacOS10.14.6`环境下安装`QtCreator5.9.8`作为`c++`的**IDE**开发工具,学习和使用**qt**(推荐)](https://blog.csdn.net/qq_33154343/article/details/103231202)
- [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)
- `Qt Creator` 此**IDE**的界面基本组成和入门使用讲解
- 编写一个**qt**的第一个项目: `Hello World`的项目
<br>
## 第二部分qt生成原理/运行机制
- [`make` `makefile` `cmake` `qmake`都是什么,有什么区别?](https://blog.csdn.net/qq_33154343/article/details/98170236)
<br>
## 第三部分:常用控件
- 一个默认的`Qt Widget`项目 【空】
- 元对象系统`moc`(**Meat-Object System**)的对象`MetaObject`和(含动态)属性`Propert`的用法【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】
## 第四部分:网络编程
- [主机信息查询`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】
**网络的实际使用🌰:**
- [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>
## 扩展部分自定义风格样式QStyle
- 自定义`QStyle`界面所有控件的风格,换肤效果的教程,自定义继承`QCommonStyle`的风格类【QtCustomStyleEx】
- 预备知识:`QStyle`、`QCommonStyle`等讲解
- [更换`Qt`应用程序的界面`UI`,实现换肤,改用自带其他默认`QStyle`风格样式](https://mp.csdn.net/mdeditor/100148539#)
- [`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)
<br>
## 补充部分:补充较杂的知识点
### 使用Qt Creator的小技巧
- [小技巧Design设计师里无法拖拽action到toolbar里](https://blog.csdn.net/qq_33154343/article/details/100168170)
- [小技巧:设置`QToolBox`的每一页page的使用单独的布局`QTabWidget`同理)](https://mp.csdn.net/mdeditor/100185025#)
<br>
### 乱码相关:
- [ 输出乱码原因:古文码、口字码、符号码、问号码、棍拷码](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>
- [Qt5与Qt4的信号接收差异](https://blog.csdn.net/qq_33154343/article/details/79130732)
- `qt`的信号和槽关系
- `qt`中Lam表达式
<br>
## 同步github.io博客
- `github.io`的同步总目录:[WiKi](https://github.com/touwoyimuli/QtExamples/wiki/Qt%E6%8E%A8%E5%80%92%E9%87%8D%E5%AD%A6%E7%B3%BB%E5%88%97--%E6%80%BB%E7%9B%AE%E5%BD%95%E3%80%90github.io%E3%80%91)
- `Qt Creator`使用小技巧:[WiKi](https://github.com/touwoyimuli/QtExamples/wiki/Qt%E4%BD%BF%E7%94%A8%E7%9A%84%E4%B8%80%E4%B8%8B%E5%B0%8F%E6%8A%80%E5%B7%A7)
<br>
## 如何编译:
**编译方式:** [WiKi](https://github.com/touwoyimuli/QtExamples/wiki/%E5%A6%82%E4%BD%95%E7%BC%96%E8%AF%91)
<br>
## 约定式提交(规范):
**github 约定式提交[官网]** [https://www.conventionalcommits.org](https://www.conventionalcommits.org)
[一种规范,用以给提交信息增加人机可读的信息-简体中文-beat4](https://www.conventionalcommits.org/zh-hans/v1.0.0-beta.4/)
<br>
## 互助:
若是帮助到了你,或者觉得有用,可以点击该项目的的<img src="https://raw.githubusercontent.com/touwoyimuli/FigureBed/master/project_log/20190709023321.png" height="18" width="18"/> **Star**<img src="https://raw.githubusercontent.com/touwoyimuli/FigureBed/master/project_log/20190709023317.png" height="18" width="18"/> **Fork** 的两个图标,方便抬手之间,表示点个赞,手有余香
<br>
## 关于作者:
<font color=#70AD47 size=4 face="幼圆">**touwoyimuli** </font> touwoyimuli@gmai.com [作者更多联系方式](https://touwoyimuli.github.io/about/)
<br>
## 协议:
<img src='https://raw.githubusercontent.com/touwoyimuli/FigureBed/blog-imange/img/20190709052148.jpg' width='240' height='127'/>
<font color=#70AD47 size=4 face="幼圆">**touwoyimuli** </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="幼圆">**touwoyimuli** </font> 所含文章使用以下协议进行保护:[署名-非商业性使用-禁止演绎](http://creativecommons.org/licenses/by-nc-nd/3.0/cn/)。