QtExamples:
我也不知道为什么,就是想放这么一张图在这里。
[TOC]
项目介绍:
✅ Qt
的 GUI
基础控件用法,网络;
✅ DTK
重绘控件方式的框架解析;
✅ QtCrator
使用和一些小技巧;
✅ Qt
原理/运行机制理解
自己所学记录,亦可以互相交流共享学习,有朋自远方互联网而来,不亦悦乎?
关于 QT 系列文章:
会将该系列的源码,文章等系列,全部托管于这个仓库,该系列的主线任务是讲解 Qt 的相关文章。
开发系统: MacOS 10.14.6 (18G103)
| win10 x64 专业版 1803
| UOS 20 x64 专业版
编码软件: Qt 5.9.8+
| Qt Creator 4.8.2 (Enterprise)
文章系列:
第一部分:预备知识
-
windows 系统:
windows10
环境下安装Qt Creator5.9.8
作为c++
的IDE开发工具,学习和使用qt (最佳推荐)- Qt Creator 安装SDK,在MSVC编译模式下使用CDB调试器
windows
环境下安装Qt Creator
+Visual Studio 2015
作为c++
的IDE
开发工具,学习和使用qt (备选)windows
环境下安装Qt Creator 5.9
+Visual Studio 2017专业版
参考此文 (备选)- Win10上CLion、CMake、MSVC/MinGW配置Qt开发
- VS2017调试Qt源码,安装PDB
-
MacOS 系统:
- Linux 系统:
第二部分:Qt 生成原理/运行机制
第三部分:常用 GUI 控件
- 一个默认的
Qt Widget
项目 【空】 - 元对象系统moc(Meat-Object System)的对象MetaObject和(含动态)属性Propert的用法 【QtMeatObjectEx】
QString
在2 /8/10/16进制之间转换 【QtQStringEx】QString
常用的功能函数的介绍和用法 【QtQStringFunEx】QSlider
和QAbstractSlider
的介绍和用法【QtQSliderEx】QSlider
移动条、QScrollBar
滚动条、QProgressBar
进度条控件的联动【QtQProgressBarEx】- 仪表盘
QSlider
和数值显示QLCD_NUmber
的讲解和使用【QtQdialQLCDEx】 - 时间日期(
QTime
/QDate
/QDateTime
)和定时器(QTimer
)的介绍和使用【QtDateTimeEx】 QComboBox
(下拉列表框)和QPlainTextEdit
(多行富文本编辑器)的用法 【QtQcomboBoxEx】- 列表控件
QListWidget
和工具按钮QToolButton
的和用法【QtQListWidgetEx】 - 目录树组件
QTreeWidget
和停靠区域组件QDockWidget
的用法【QtQTreeWidgetEx】 QTableWidget
表格组件的属性介绍和使用【QtQTableWidgetEx】QFileSystemModel
数据模型获取本机文件系统的使用【QtQFileSystemModelEx】getOpenFileName
标准对话框和自定义对话框的使用【QtQDialogEx】QTableView
和QStandardItemModel
的用法【QtQStandardItemModelEx】- 自定义和标准对话框的用法【QtCustomDialogEx】
- 多文档界面
MDI
(Multi-document Interface
)的实现,QMdiArea
使用【QtMDIEx】
第四部分:网络编程
- 主机信息查询
QHostInfo
和QNetworkInterface
查询IP等【QtQHostInfoEx】 TCP
通信之QTcpServer
和QTcpSocket
,服务器和客户端通讯【QtTcpEx】Upd
通信之QUdpSocket
的unicast
单播、broadcast
广播、multicast
组播【QtUdpEx】QNetworkAccessManager
/QNetworkReply
/QNetworkRequest
实现高层网络的操作http
【QtHttpEx】
第五部分:DTK 重绘控件原理解析(自定义样式 QStyle )
- DTK 历史发展:
- DTK的历史起源、发展,和简单入门 『🥳🥳』
- deepin、dde的历史起源与发展(附deepin所有版本的dde截图) 『🥳🥳』
- UOS/Deepin 中配置 DTK 开发环境 『🥳🥳』
- Deepin / DTK 文档参考资料集合 『🥳🥳🥳🥳🥳』
- 预备知识:
- QStyle与QPen、QPush、QPalette、QPainter之间的区别
- DTK 基础教程:自定义控件规范 『🥳🥳』
- QStyle设置界面的外观和QCommonStyle继承关系图讲解和使用 『👩💻👩💻👩💻』
- qt之proxy()代理探究
- DTK常用和测试代码片
- 感性理解👀:
- DTK 源码解析架构🤔:
- QStyle/DTK重绘Qt-GUI已有控件,举例QScrollBar 『👩💻👩💻👩💻』
- QStyle/DTK重绘自定义需求控件,举例MySwitchButton 『👩💻👩💻👩💻』
- DTK常用和测试代码片
- DTK 每日自动更新其 API 文档
- DTK 基础教程:自定义控件规范 [★★]
第六部分:Qt / IDE 出现乱码原因和解决:
- 愿编程不再乱码(含Qt)-根因深究 [★★★★★]
- 乱码原因产生和解决方案 [★★]
- 输出乱码原因:古文码、口字码、符号码、问号码、棍拷码
- qt5 中文乱码解决
- Qt字符串有中文,编译不通过解决方法:
- 乱码原因(Qt版本)_附上语文的pdf版本
- qt中文乱码问题
- 借Qt中文乱码谈谈Coding中的编码问题
- Qt4和Qt5的信号和槽的使用差异
qt
中 Lambda 表达式
第七部分:QtCreator 的使用小技巧:
- QtCreator设置代码美化 astyle 之 Artistic
- Qt Creator 关闭.cpp文件右侧的黄色警告
- 小技巧:Design设计师里,无法拖拽action到toolbar里
- 小技巧:设置
QToolBox
的每一页page的使用单独的布局(QTabWidget
同理) - 小技巧:QtCreator用快捷键秒实现,声明在基类中重写的派生类(纯)虚函数
- VS2019调试Qt5时QString显示为内存地址而非字符串
第八部分:提交规范和发布 Qt 程序:
- 约定式提交规范
- Qt 项目在 Windows 平台上面发布成可执行程序
- Qt 项目在 MacOS 平台上面发布成可执行程序
- Qt 项目在 Linux 平台上面发布成可执行程序
- 如何给上游 Qt 提交 Bug 反馈和贡献代码 PATCH?
- Qt 项目用 Doxygen 生成 .qch,嵌入文档到 Assistants
- 修改 Doxygen 主题,生成 Qt 风格的文档
- QtCreator 中自定义项目例子置于“欢迎-实例”中
第 九部分:高级
- 高分屏、分辨率、DPI、PPI,及 Qt 处理高分屏
- Qt 项目(Cmake)设置国际化支持
- 如何构建 QT5(5.15)
- 在 Mac 编译成功运行 qt5.15 源码:debug 和 release 版本
- Qt 信号和槽原理分析
第十部分:项目
网络
- QT5/C++项目:基于QT的跨平台网络对战象棋(一)(推荐★★★★)
- QT5/C++项目:基于QT的跨平台网络对战象棋(二)(推荐★★★★)
- QT5/C++项目:基于QT的跨平台网络对战象棋(三)(推荐★★★★)
- 项目实战:Qt5/C++:TCP的C/S的聊天小程序 (带界面 GUI)
- 项目实战:仿QQ的QQ简洁版2019群聊项目(带界面 GUI)
- 项目实战Small example:C:Socket之Tcp编程 [终端 Terminal]
- 项目实战Small example:C:Socket之UDP编程 [终端 Terminal]
- 项目实战:Qt5/Quick:模仿扣扣登录界面[小程序]
其它(Qt/DTK)
- 更换
Qt
应用程序的界面UI
,实现换肤,改用自带其他默认QStyle
风格样式 QStyle
自定义重绘滑动条QSlider
控件QStyle
自定义重绘QRubberBand
控件- 重绘的
QStyle
中sizeFromContents
()没有被调用 QStyle
之PenStyle
的CustomDashLine
使用QStyle
自定义重绘滑动条QSlide
r控件二- QStyle自定义重绘
QScrollBar
- Deepin 自定义修改窗口圆角大小 [商业开源项目★★★]
- Deepin 开发任务栏网速插件 lfxSpeed [★★★]
- Deepin 愿望墙:社区插件等需求调研结果 [社区练手参考]
- Deepin 任务栏网速插件推荐 lfxNet (重构 lfxSpeed) [★★★★]
新手过来:
新手 在深思熟虑后踏入的编程,容易遭遇如下如下几点:
- 语言语法不熟悉🤦♀️
- 相关 IDE 安装、配置不会;不懂如何创建自己所需的工程项目🤦♀️
- 基础控件不认识,不会用🤦♀️
- 难以🔍可阅读、成体系的低级博客,多为高热度Title文章🤦♀️
- ...开始步入正轨👣
- 也不知学编程到是底在学习什么❓👀
- ...修行靠个人👩💻
分享所想:
- 自己想学一遍 GUI 控件
- 帮助真的新手实现0→1的入门,解决👆的1,2,3,4,6问题
- 学习于网络,回馈于网络
- 希望永久被🔍引擎检索到,以博客形式发表📝
我所想说:🙋♀️
虽然不盈利,会累,但因自由和开源软件而写的开心ya, 鸭鸭
贡献:
若是帮助到了你,或者觉得有用,可以点击该项目的的Star 和Fork 的两个图标,方便抬手之间,表示点个赞,手有余香
作者:
协议:
偕藏: 博客代码基于Apache License 2.0 协议进行分发和使用,更多信息参见协议文件。
偕藏: 所含文章使用以下协议进行保护:署名-非商业性使用-禁止演绎。