QT知识体系框架及对应文章汇总

文章目录

IDE用法

需要掌握的知识点主要包括以下两方面:

1.IDE的基本用法,以及如何自定义和使用各种快捷键

2.各种工具使用: Qt Assistant QT助手 、 Qt Designer QT设计器 、 Qt Linguist QT语言家

基本界面实现

基本控件和窗体

1.基本控件的使用: QWidget、QPushButton、QLabel、QLineEdit等

2.对话框QDialog(模态对话框-->阻碍相应/非模态对话框)

3.标准对话框: QColorDialog/QFileDialog/QMessageBox/QFontDialog/QErrorMessage等

让Qt窗口保持显示在最前的跨平台解决方案

控件布局和定位

QHBoxLayout(水平布局)、QVBoxLayout(垂直布局)、QGridLayout(网格布局)、QFormLayout、QStackedLayout(栈布局管理器)

QSpitter(窗口分割器)

应用程序主窗口

组成部分: 菜单栏、工具栏、中心部件、状态栏、Docke窗口

界面外观样式实现

通过样式表QSS实现自定义样式(透明窗体、透明圆角等)

Qt窗口实现圆角阴影效果
QT自定义控件的悬浮样式实现
QT自动适配高分屏的解决方案

事件系统实现

1.鼠标事件、键盘事件、定时器事件(点击、悬浮、拖拽)

2.事件的过滤和发送

通过QT的拖拽事件来操作文件

控件窗体关联通信

1.信号和槽通信机制(DirectConnection、QueuedConnection)

2.属性系统(传递数据、指定样式等)

3.元对象系统

QT中使用function+lambda来替代繁琐的信号绑定

图形动画

2D图形绘制

1.重写paint事件

  • 绘制文本、图像、路径(绘制-填充-渐变-抗锯齿等)

QT自绘控件的实现方式

3D图形绘制

1.OpenGL绘制三维模型

2.OpenGL绘制纹理、截图等

采用QT进行OpenGL开发(一)绘制平面图形
采用QT进行OpenGL开发(二)绘制立方体
采用QT进行OpenGL开发(三)着色器编程
使用Qt进行OpenGL开发-绘制简单矩形
Qt OpenGL绘制旋转的立方体
Qt OpenGL 绘制复合纹理图样
Qt OpenGL二次渲染实现滤镜效果
Qt OpenGL实现截图的方法大汇总

图形视图框架

1.视图、场景、图元

2.坐标体系事件处理

QGraphicsScene中嵌入自定义窗口
QGraphicsView通过鼠标操作来绘制图元
QGraphicsView图形视图框架使用(一)坐标变换
QGraphicsView图形视图框架使用(二)图形交互
QGraphicsView图形视图框架使用(三)位移变换和图元定位
QGraphicsView图形视图框架使用(四)自定义Item
QGraphicsView图形视图框架使用(五)渲染优化
QGraphicsView图形视图框架使用(六)图元动画
QGrahicsView中视图定位-状态重绘-碰撞监测-层次关系

动画状态切换

1.单一动画

  • QPropertyAnimation

2.动画组

  • QSequentialAnimationGroup(串联动画)、QParallelAnimationGroup(并联动画)

3.状态和过渡

  • 状态的保持、切换、恢复和特效

多媒体应用

QT的音视频功能不是特别强,建议专业应用使用FFmpeg

1.音视频功能类: QMediaPlayer、QMovie、QCamera、QAudioRecorder

2.可以实现的功能(音视频播放和录制)

数据处理和展示

普通文件

1.QFile读取文件\QTextStream读取文本流; QDataStream读取二进制流

特殊文件

处理特殊文集:ini、XML、json等

通过序列化操作实现QT程序状态的本地持久化
QT项目中通过数据封装实现Json结构和数据类之间的相互转换

模型视图框架

Model-->Delegate-->View框架

QListWidget、QTreeWidget、QTableWidget

QT中Model-View-Delegate委托代理机制用法介绍
Qt5中的model-view-delegate
模型-视图-代理(Model-View-Delegate)实例

数据库

各种数据库的处理

通过封装数据库操作接口实现QT对象本地持久化
QT通过数据模型操作数据库中的数据

各种数据结构

字符串: QString、正则表达式

容器类: QSet、QList、QVector、QQueued、QStacked、QMap、QMultiMap、QHash、QMultiHash等

自适应类: QByteArray、QVariant

通过QT实现C++和JavaScript混合编程

通信及部署

进程/线程

1.进程使用QProcess调度

2.线程实现: 重写QThread、QObject->movetoThread、QTreadPool、QConcurrent

配置QT程序的命令行参数
采用QT实现并行计算框架
通过引入线程池提升QT程序的并发性能
QtConcurrent实现多线程并行计算

通信方式

1.UDP\TCP通信

2.HTTP通信

3.FTP通信

4.QtWebEngine

Qt使用Http协议进行通信
Qt+libhv实现各类网络通信方式(TCP-UDP-HTTP-WebSocket)
通过QT管理网络状态和网络连接
Qt中使用共享内存实现进程间的通信
dbus总线通信的原理和使用

打包发布部署

1.搭建工程项目

2.提取程序的依赖项,打包发布

3.程序测试工程

采用QTest进行数据集测试-性能测试-GUI测试
QT日志模块的个性化使用
QT项目搭建完整的单元测试流程
分析一个跨平台QT项目(获取系统CPU使用率和内存占用率)
快速搭建一个简洁高效的跨平台Qt项目工程
使用AppImage格式打包独立运行的Qt-Linux程序
QT项目自动化构建和打包
QT程序设置程序详细信息
QT获取计算机的硬件信息

插件系统

1.自定义插件

2.输入法插件等

Qt插件之自定义插件构建和使用
Qt插件之Qt Designer插件实现
Qt插件之输入法插件的构建和使用(一)
Qt插件之输入法插件的构建和使用(二)

相关推荐
l1t1 小时前
利用DeepSeek优化SQLite求解数独SQL用于DuckDB
开发语言·数据库·sql·sqlite·duckdb
lcanfly1 小时前
Mysql作业5
android·数据库·mysql
rit84324991 小时前
在Ubuntu上配置Nginx实现开机自启功能
数据库·nginx·ubuntu
硅农深芯1 小时前
如何使用ptqt5实现进度条的动态显示
开发语言·python·qt
海绵啵啵呀1 小时前
SQL plus中解决上下键找历史命令的工具--rlwrap命令行工具
数据库·sql
Lhan.zzZ1 小时前
Qt数据可视化实战:饼图、线图与表格的完整指南
开发语言·qt·信息可视化
Elastic 中国社区官方博客1 小时前
使用 Mastra 和 Elasticsearch 构建具有语义回忆功能的知识 agent
大数据·数据库·人工智能·elasticsearch·搜索引擎·ai·全文检索
老邓计算机毕设2 小时前
SSM危险品运输车辆信息管理系统b2z1o(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
数据库·ssm 框架
MuYiLuck2 小时前
redis持久化与集群
java·数据库·redis
卓码软件测评2 小时前
软件数据库测试:【数据库质量保障:从单元测试到性能优化】
运维·数据库·测试用例·压力测试