QtExamples 系列目录

编程知识 更新时间:2023-04-10 08:42:35

文章目录

  • QtExamples
    • 项目介绍
    • 构建环境
  • 正文
    • 「第 1 章」 预备知识
    • 「第 2 章」 QT 生成原理/运行机制
    • 「第 3 章」 常规 GUI 控件
    • 「第 4 章」 网络编程
    • 「第 5 章」 DTK 重绘控件原理解析 / 自定义 QStyle
    • 「第 6 章」 QT / IDE 乱码根因和解决
    • 「第 7 章」 IDE 技巧
    • 「第 8 章」 提交规范和发布 QT 程序
    • 「第 9 章」 高级
    • 「第 10 章」 项目
    • 新手过来
    • 分享所想
    • 我所想说🙋‍♀️
    • 贡献

我也不知道为什么,当初就是想放这么一张图在这里~

QtExamples

项目介绍

  • QtGUI 基础控件用法,网络;

  • DTK 重绘控件方式的框架解析;

  • QtCrator 使用和一些小技巧;

  • Qt 原理/运行机制理解

自己所学记录,亦可以互相交流共享学习,有朋自远方互联网而来,不亦悦乎?


构建环境

该系列的源码,知识文章等均托管于此仓库;主线目标是讲解 QT5 的相关文章。

开发系统: MacOS 10.14-13.x | win10 x64 1803-22H2 | UOS/Deepin 20.x

编码软件: Qt 5.9-5.15 | Visual Studio 2015-2019


正文

「第 1 章」 预备知识

  • Windows 系统

    • 在 Win10 环境下安装 QtCreator 5.9.8 作 C++ 的 IDE 开发工具
    • QtCreator 安装 SDK,在 MSVC 编译模式下使用 CDB 调试器
    • Win10 安装 QtCreator + Visual Studio 2015 作为 C++ 的 IDE 开发工具
    • Visual Studio 2017 专业版使用最新版 Qt 5.9.2 教程
    • Win10 安装 CLion + CMake + MSVC / MinGW 作 QT 开发
  • MacOS 系统

    • MacOS 安装 QtCreator 5.9.8 作 C++ 的 IDE 开发工具
  • Linux 系统

    • Win10 的 VMware 中安装 UOS 20,在 UOS 中安装 QtCreator 及搭建 DTK 开发环境
    • MacOS 安装 Parallels Desktop,再安装 UOS 20 + QtCreaor,及搭建 DTK 开发环境
    • MacOS 的 VMware Fusionlimian 中安装 Linux Deepin15.11
    • Deepin / UOS 中配置 DTK 开发环境
    • 重装 UOS / Deepin V20 后必安装软件(个人习惯)
    • ArchLinux + DDE 安装教程
    • 对 GNU/Linux 介绍、ArchLinux社区氛围、DDE移植Arch流程
  • 通用命令交互

    • Shell、Bash、CMD、PowerShell 的区别
    • Windows-Terminal 配置 OhMyPosh 美化 GitBash
    • Windows-Terminal 美化 PowerShell 7

「第 2 章」 QT 生成原理/运行机制

  • Make、Makefile、Cmake、QMake 的区别
  • QT 编程中 namespace Ui { class Widget; } 解析

「第 3 章」 常规 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】
  • Qt 修改 *.svg 文件的颜色【ExChangeSVGColor】
  • 创建 QKeySequenceEdit() 后,显示方块■◆乱码

「第 4 章」 网络编程

  • QHostInfo 主机信息查询 + QNetworkInterface 查询 IP 等【QtQHostInfoEx】
  • TCP 通信之 QTcpServer + QTcpSocket,服务器和客户端通讯【QtTcpEx】
  • UDP 通信之 QUdpSocket + unicast 单播 / broadcast 广播 / multicast 组播【QtUdpEx】
  • QNetworkAccessManager + QNetworkReply + QNetworkRequest 协同实现高层网络的操作 HTTP 【QtHttpEx】

「第 5 章」 DTK 重绘控件原理解析 / 自定义 QStyle

  • DTK 历史发展
    • DTK 的历史起源、发展,和简单入门 [★★]
    • Deepin、DDE 的历史起源与发展(附 Deepin 所有版本的 DDE 效果图) [★★]
    • UOS/Deepin 中配置 DTK 开发环境 [★]
    • Deepin / DTK 文档参考资料集合 [★★★]
  • 背景知识
    • QStyle与QPen、QPush、QPalette、QPainter之间的区别
    • DTK 基础教程:自定义控件规范 [★]
    • QStyle 设置界面的外观和 QCommonStyle 继承关系图讲解和使用 [★★]
    • Qt 之 proxy() 代理函数探究
  • 感性理解👀
    • QT 控件在 UOS 20 + MaOS10.14 下的显示不同的 QStyle「即样式换肤效果」
    • QT 控件在 Win 10 + Deepin 10.15 下的显示不同的 QStyle「即样式换肤效果」
  • DTK 源码解析架构🤔
    • QStyle / DTK 重绘 Qt-GUI 已有控件,举例 QScrollBar [★★]
    • QStyle / DTK重绘自定义需求控件,举例 MySwitchButton [★★]
    • DTK 基础教程:自定义控件规范 [★★]
    • DTK常用和测试代码片
    • DTK 每日自动更新其 API 文档
  • DTK 项目实战
    • 更换 QT 应用程序的界面 UI,实现换肤,展示自带其它 QStyle 样式
    • QStyle 自定义重绘 QScrollBar
    • QStyle 自定义重绘 QRubberBand 控件
    • QStyle 自定义重绘滑动条 QSlider 控件
    • QStyle 自定义重绘滑动条 QSlider 控件二
    • QStyle 重绘时 sizeFromContents() 未被调用的分析
    • QStyle 之 PenStyle 的 CustomDashLine 使用
    • Deepin 开发任务栏网速插件 lfxSpeed [★]
    • Deepin 任务栏网速插件推荐 NetSpeed (重构 lfxSpeed) [★★]
    • Deepin 自定义修改窗口圆角大小 [商业开源项目示例 ★★]
    • Deepin 愿望墙:社区插件等需求调研结果 [社区练手参考]

「第 6 章」 QT / IDE 乱码根因和解决

  • 此两篇足够

    • 极简图表解释 --> 古文码、口字码、符号码、问号码、棍拷码 [★★★★★]

    • 极繁根因分析 --> 愿编程不再乱码(含Qt)-根因深究 [★★★★★]

  • 产出 “极繁根因分析” 一文的途中的曲折认知

  • 乱码原因产生和解决方案

  • QT 中文乱码问题 [★★]

    • QT5 中文乱码解决
  • 借 QT 中文乱码谈谈 Coding 中的编码问题


「第 7 章」 IDE 技巧

  • Qt Creator

    • QtCreator 界面的基本组成简介和入门使用讲解(Win + Linux + MacOS

    • QtCreator 设置代码美化 Astyle 之 Artistic

    • QtCreator 关闭 .cpp 文件右侧的黄色警告

    • QtCreator 中自定义项目例子置于“欢迎-实例”中

    • QtCreator 中自定义项目例子置于“欢迎-实例”中

    • Qt 项目用 Doxygen 生成 .qch,嵌入文档到 Assistants

    • 小技巧:Design 设计师里,无法拖拽 action 到 toolbar 里

    • 小技巧:QtCreator 用快捷键秒实现,声明在基类中重写的派生类(纯)虚函数

    • 小技巧:设置 QToolBox 的每一页 page 的使用单独的布局(QTabWidget 同理)

  • Visual Studio

    • VS2017 调试 Qt 源码,安装 PDB

    • VS2019 调试 Qt5 时 QString 显示为内存地址而非字符串

    • Visual Studio 实际仅增删数行,却显示文件所有行均发生变更

    • Visual Studio 生成 .vs 隐藏文件夹,导致 Git 命令错误

    • Win10 的 20H2 使用 VS 2019,拖曳窗口会崩溃

    • Visual Studio 2019 进行远程调试

    • Visual Studio 断点调试之箭头偏移进错函数,捉🐛记

    • 微软 SDK 导致的项目编译失败哦~

    • 一个微软自带的 Notepad 所导致的问题 【ExCRLF】


「第 8 章」 提交规范和发布 QT 程序

  • 约定式提交规范
  • 修改 Doxygen 主题,生成 Qt 风格的文档
  • QT 项目在 Windows 平台上面发布成可执行程序
  • QT 项目在 MacOS 平台上面发布成可执行程序
  • QT 项目在 Linux 平台上面发布成可执行程序
  • Linux 中用 dh_make 将 Qt + CMake 项目打包为 deb 文件

「第 9 章」 高级

  • Lambda 表达式详解

  • Qt 信号和槽原理分析 [★★★]

  • QT 项目 CMake 设置国际化支持

  • Qt4 和 Qt5 的信号和槽的用法差异

  • 高分屏、分辨率、DPI、PPI,及 Qt 处理高分屏 [★★]

  • 如何给上游 QT 提交 BUG 反馈和贡献代码 PATCH? [★★★★]


  • 如何构建 QT5(5.15)
  • 在 Mac 编译成功运行 QT 5.15 源码:Debug + Release 版本
  • 一个完整的 Linux / Unix学习系列(基础 / 编译 / 进程间通信 / 信号 / 守护进程 / 多线程)【linuxExample】[★★★★★]

「第 10 章」 项目

  • QT5/C++项目:QT象棋【初版】 [★★★★★]
  • QT5/C++项目:基于QT的跨平台网络对战象棋(一) [★★★★★]
  • QT5/C++项目:基于QT的跨平台网络对战象棋(二) [★★★★★]
  • QT5/C++项目:基于QT的跨平台网络对战象棋(三) [★★★★★]
  • 项目实战:仿 QQ 的单聊,属 GUI 界面
  • 项目实战:仿 QQ 的群聊,属 GUI 界面
  • 项目实战:C 语言写 Socket 的 TCP 聊天,属 CUI 控制台
  • 项目实战:C 语言写 Socket 的 UDP 聊天,属 CUI 控制台
  • 项目实战:QT5 的 Quick 仿写 QQ 2019 简洁版的登录界面,含 GUI 界面

新手过来

新手 在深思熟虑后踏入的编程,容易遭遇如下如下几点:

  1. 语言语法不熟悉🤦‍♀️
  2. 相关 IDE 安装、配置不会;不懂如何创建自己所需的工程项目🤦‍♀️
  3. 基础控件不认识,不会用🤦‍♀️
  4. 难以🔍可阅读、成体系的低级博客,多为高热度Title文章🤦‍♀️
  5. …开始步入正轨👣
  6. 也不知学编程到是底在学习什么❓👀
  7. …修行靠个人👩‍💻

分享所想

  1. 自己想学一遍 GUI 控件
  2. 帮助真的新手实现0→1的入门,解决👆的1,2,3,4,6问题
  3. 学习于网络,回馈于网络
  4. 希望永久被🔍引擎检索到,以博客形式发表📝

我所想说🙋‍♀️

虽然不盈利,会累,但因自由和开源软件而写的开心ya, 鸭鸭


贡献

若是帮助到了你,或者觉得有用,可以点击该项目的的 ⭐Star 🍴 Fork 的两个图标,方便抬手之间,表示点个赞,手有余香

当然也可以赠与一杯冰阔落[捐赠/打赏 ← 点击展开二维码]

- If you have something to learn from the project, you can also invite me to share a glass of Fat House Ice and Coke. -

 


由于会经常更新新的文章,所以暂时先使用这一份目录更新:https://github/XMuli/QtExamples
更新时间: 2023-03-10

更多推荐

QtExamples 系列目录

本文发布于:2023-04-09 12:42:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/40133ef3598bac210532e693fb74f5b7.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:目录   系列   QtExamples

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!

  • 60878文章数
  • 14阅读数
  • 0评论数