Qt 之 GUI 控件使用 / 网络 / 架构原理 / 运行机制理解;DTK 重绘控件方式的框架解析;IDE 技巧之 Visual Studio / Qt Creator;此为系列文章教程
158deb7c80
public: virtual void polish(QWidget *widget) override; virtual void unpolish(QWidget *widget) override; virtual void drawPrimitive(PrimitiveElement pe, const QStyleOption *opt, QPainter *p, const QWidget *w) const override; virtual void drawControl(ControlElement element, const QStyleOption *opt, QPainter *p, const QWidget *w) const override; virtual QRect subElementRect(SubElement subElement, const QStyleOption *option, const QWidget *widget) const override; virtual void drawComplexControl(ComplexControl cc, const QStyleOptionComplex *opt, QPainter *p, const QWidget *widget) const override; virtual QRect subControlRect(ComplexControl cc, const QStyleOptionComplex *opt, SubControl sc, const QWidget *widget) const override; virtual int pixelMetric(PixelMetric metric, const QStyleOption *option, const QWidget *widget) const override; virtual QSize sizeFromContents(ContentsType ct, const QStyleOption *opt, const QSize &contentsSize, const QWidget *w) const override; virtual int styleHint(StyleHint stylehint, const QStyleOption *opt, const QWidget *widget, QStyleHintReturn *returnData) const override; |
||
---|---|---|
QtCustomDialogEx | ||
QtCustomStyleEx | ||
QtDateTimeEx | ||
QtHttpEx | ||
QtMDIEx | ||
QtMeatObjectEx | ||
QtMyStyleEx | ||
QtQcomboBoxEx | ||
QtQDialogEx | ||
QtQdialQLCDEx | ||
QtQFileSystemModelEx | ||
QtQHostInfoEx | ||
QtQlistWidgetEx | ||
QtQProgressBarEx | ||
QtQSliderEx | ||
QtQStandardItemModelEx | ||
QtQStringEx | ||
QtQStringFunEx | ||
QtQStringListModelEx | ||
QtQTableWidgetEx | ||
QtQTreeWidgetEx | ||
QtTcpEx | ||
QtUdpEx | ||
.gitignore | ||
LICENSE | ||
README.md |
QtExamples:
项目介绍:
Qt5
各个控件使用的一个例子、以及一些底层原理或者技巧性的理解,即是自己所学记录,亦可以互相交流共享学习,有朋自远方互联网而来,不亦悦乎?
过来:
新手 在深思熟虑后踏入的编程,容易遭遇如下如下几点↬:
- 语言语法不熟悉🤦♀️
- 相关 IDE 安装、配置不会;不懂如何创建自己所需的工程项目🤦♀️
- 基础控件不认识,不会用🤦♀️
- 难以🔍可阅读、成体系的低级博客,多为高热度Title文章🤦♀️
- ...开始步入正轨👣
- 也不知学编程到是底在学习什么❓👀
- ...修行靠个人👩💻
所想:
- 自己想学一遍 GUI 控件
- 帮助真的新手实现0→1的入门,解决👆的1,2,3,4,6问题
- 学习于网络,回馈于网络
- 希望永久被🔍引擎检索到,以博客形式发表📝
想说:🙋♀️
虽然不盈利,会累,但因自由和开源软件而写的开心ya, 鸭鸭
关于 QT 系列文章说明:
会将该系列的源码,文章等系列,全部托管于这个仓库,该系列的主线任务是讲解Qt的相关文章。
开发系统: MacOS 10.14.6 (18G103)
| win10 x64 专业版 1803
| UOS 20 x64 专业版
编码软件: Qt 5.9.8
| Qt Creator 4.8.2 (Enterprise)
项目文章系列:
第一部分:预备知识
-
windows 系统:
-
MacOS 系统:
-
Linux 系统:
此处 Linux 以 uos20 为例(即: deepin )
-
Qt Creator 作为 IDE 基础讲解:
第二部分:qt生成原理/运行机制
第三部分:常用控件
- 一个默认的
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】
网络的实际使用🌰:
扩展部分:自定义风格样式QStyle
- 自定义
QStyle
界面所有控件的风格,换肤效果的教程,自定义继承QCommonStyle
的风格类【QtCustomStyleEx】 - 前期预备知识:
QStyle
、QCommonStyle
等讲解 - 更换
Qt
应用程序的界面UI
,实现换肤,改用自带其他默认QStyle
风格样式 QStyle
自定义重绘滑动条QSlider
控件QStyle
自定义重绘QRubberBand
控件- 重绘的
QStyle
中sizeFromContents
()没有被调用 QStyle
之PenStyle
的CustomDashLine
使用QStyle
自定义重绘滑动条QSlide
r控件二- QStyle自定义重绘
QScrollBar
补充部分:补充较杂的知识点
使用Qt Creator的小技巧:
乱码相关:
- 输出乱码原因:古文码、口字码、符号码、问号码、棍拷码
- qt5 中文乱码解决
- Qt字符串有中文,编译不通过解决方法:
- 乱码原因(Qt版本)_附上语文的pdf版本
- qt中文乱码问题
- 借Qt中文乱码谈谈Coding中的编码问题
- Qt5与Qt4的信号接收差异
qt
的信号和槽关系qt
中Lam表达式
同步github.io博客:
如何编译:
编译方式: WiKi
约定式提交(规范):
github 约定式提交[官网]: https://www.conventionalcommits.org
一种规范,用以给提交信息增加人机可读的信息-简体中文-beat4
互助:
若是帮助到了你,或者觉得有用,可以点击该项目的的Star 和Fork 的两个图标,方便抬手之间,表示点个赞,手有余香
关于作者:
touwoyimuli: touwoyimuli@gmai.com 作者更多联系方式
协议:
touwoyimuli: 博客代码基于Apache License 2.0 协议进行分发和使用,更多信息参见协议文件。
touwoyimuli: 所含文章使用以下协议进行保护:署名-非商业性使用-禁止演绎。