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

devtools/2024/9/18 12:41:31/ 标签: qt, 数据库, 知识框架, 目录, UI框架

文章目录

  • IDE用法
  • 基本界面实现
    • 基本控件和窗体
    • 控件布局和定位
    • 应用程序主窗口
    • 界面外观样式实现
    • 事件系统实现
    • 控件窗体关联通信
  • 图形动画
    • 2D图形绘制
    • 3D图形绘制
    • 图形视图框架
    • 动画状态切换
    • 多媒体应用
  • 数据处理和展示
    • 普通文件
    • 特殊文件
    • 模型视图框架
    • 数据库
    • 各种数据结构
  • 通信及部署
    • 进程/线程
    • 通信方式
    • 打包发布部署
    • 插件系统

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来替代繁琐的信号绑定
QT信号和槽通信机制的使用技巧

图形动画

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混合编程
QT彻底解决中文乱码问题(代码、普通文件、ini文件、路径)

通信及部署

进程/线程

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插件之输入法插件的构建和使用(二)


http://www.ppmy.cn/devtools/31787.html

相关文章

记一次从登录框到前台rce

接口未授权挖掘 在网站未登录的情况下,由于不知道后台接口。唯一办法通过js文件、路径扫描。通过这种收集方式使用burp进行批量扫描,分别探测GET/POST请求。观察响应包跟状态码。判断响应包,确定存在未授权后,再构造数据包。 2 突…

基于免疫粒子群算法的考虑负荷需求相应的热电联供系统优化调度(MATLAB实现)

1.研究背景 随着“双碳”战略的提出,各种分布式能源的开发和利用收到越来越多的重视。冷热电联供(Combined Cooling Heating and Power, CCHP)系统在发电的同时可以将燃气轮机产生的废热用于制热或制冷,实现能量的梯级利用,并减少系统的污染气…

Redis---------分布式锁Redisson

概述 Redisson入门 第一步&#xff1a;引入依赖 <dependency><groupId>org.redisson</groupId><artifactId>redisson</artifactId><version>3.13.6</version></dependency> 第二步&#xff1a;配置文件 import org.redisson…

【C++第七课-string用法】

这里写自定义目录标题 string的初步介绍sring的构造函数string的构造函数-重点掌握无参的构造函数用常量字符串来初始化拷贝构造 string的构造函数-非重点掌握拷贝字符串str从pos位置开始的len个字符拷贝字符串s的前n个字符用n个c去初始化 string的赋值string的遍历和访问下标[…

【Mac】mac 安装 prometheus 报错 prometheus: prometheus: cannot execute binary file

1、官网下载 Download | Prometheus 这里下载的是prometheus-2.51.2.linux-amd64.tar.gz 2、现象 解压之后启动Prometheus 启动脚本&#xff1a; nohup ./prometheus --config.fileprometheus.yml > prometheus.out 2>&1 & prometheus.out日志文件&#xff…

基于单片机的煤气泄漏报警系统设计

摘要:本文设计了一种基于单片机控制的煤气泄漏检测报警系统,该系统以AT89S52单片机为核心,通过气敏电阻传感器MQ-7将采样到的 一氧化碳气体转换为电信号经处理后送给单片机,单片机对获取的信号进行分析,控制声光报警系统进行声光报警。该系统可以对室内空 气中的CO含量是否…

数据库(MySQL)—— 多表查询

数据库&#xff08;MySQL&#xff09;—— 多表查询 多表关系一对多多对多一对一多表查询概述数据准备查询形式笛卡尔积 分类连接查询内连接外连接左外连接右外连接 自连接联合查询 今天我们来进入MySQL中一个非常重要的部分&#xff1a;多表查询&#xff1a; 多表关系 多表关…

创建和激活python虚拟环境(venv), 以及在vscode上运行python虚拟环境

最近使用python做项目&#xff0c;发现佬们都是在用python的虚拟环境来放项目。发现确实有一些优势在这之中&#xff0c; 首先就是隔离性&#xff0c;我们将每个项目放入相对应的环境配置&#xff0c;可以有效避免乱七八糟的库出现在解释器中。其次就是可移植性强&#xff0c;…

【SQL】根据条件分组,并根据条件取最大的这一条数据

数据&#xff0c;当字段A相同时&#xff0c;取字段B数值大的这一条数据 ABC123114223234 期望结果 ABC123234 Oracle SELECT A, B, C FROM (SELECT A, B, C,ROW_NUMBER() OVER (PARTITION BY A ORDER BY B DESC) AS rnFROM 表名 ) WHERE rn 1; MySql SELECT t1.A, t1.B,…

Edge浏览器

前言 作为一款现代化的网络浏览器&#xff0c;Microsoft Edge提供了许多功能和工具&#xff0c;使用户能够更加高效地浏览互联网&#xff0c;并享受更好的网络体验。下面是我对Edge浏览器的使用心得和深度探索&#xff1a; 使用心得&#xff1a; 性能和速度&#xff1a; Edge浏…

MySQL技能树学习——数据库组成

数据库组成&#xff1a; 数据库是一个组织和存储数据的系统&#xff0c;它由多个组件组成&#xff0c;这些组件共同工作以确保数据的安全、可靠和高效的存储和访问。数据库的主要组成部分包括&#xff1a; 数据库管理系统&#xff08;DBMS&#xff09;&#xff1a; 数据库管理系…

【全网首出】npm run serve报错 Expression: thread_id_key != 0x7777

总结 困扰了一天&#xff01;&#xff01;&#xff01;一直以为是自己哪里配置错了&#xff0c; 结果最后发现是node.js官方的问题&#xff0c; Node.js v16.x版本的fibers.node被弃用 本文阅读大概&#xff1a;3min #npm run serve时就报错 #找了一天的文章&#xff0c;找不…

Flutter笔记:Widgets Easier组件库(10)快速处理承若型对话

Flutter笔记 使用Widgets Easier组件库快速处理承若型对话 - 文章信息 - Author: 李俊才 (jcLee95) Visit me at CSDN: https://jclee95.blog.csdn.netMy WebSite&#xff1a;http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAddress of this article:https://…

洞察Agent AI智能体的未来:机遇与挑战并存

&#x1f512;文章目录&#xff1a; &#x1f6f4;什么是Agent AI智能体 &#x1f4a5;Agent AI智能体的技术组成 ☂️Agent AI智能体的应用场景 &#x1f4a3;Agent AI智能体的挑战与问题 &#x1f6b2; Agent AI智能体在未来社会中的角色和影响 ❤️对Agent AI智能体未来的期…

动态sql

本文参考mybatis看这一篇就够了&#xff0c;简单全面一发入魂 动态SQL 可以根据具体的参数条件&#xff0c;来对SQL语句进行动态拼接。 比如在以前的开发中&#xff0c;由于不确定查询参数是否存在&#xff0c;许多人会使用类似于where 1 1 来作为前缀&#xff0c;然后后面用…

深度学习中损失函数和激活函数的选择

文章目录 前言 你需要解决什么问题&#xff1f; 你想预测数值吗&#xff1f; 你想预测分类结果吗&#xff1f; 回归&#xff1a;预测数值 分类&#xff1a;预测二元结果 分类&#xff1a;从多个类别中预测单个标签 分类&#xff1a;从多个类别中预测多个标签 总结表 前言 本篇…

Qt模型视图代理之MVD(模型-视图-代理)概念的简单介绍

往期回顾 Qt绘图与图形视图之Graphics View坐标系的简单介绍-CSDN博客 Qt绘图与图形视图之基本图元绘制的简单介绍-CSDN博客 Qt绘图与图形视图之自定义图元实现拖拽、拉伸、旋转功能-CSDN博客 Qt模型视图代理之MVD(模型-视图-代理)概念的简单介绍 一、基本概念 Qt模型视图代理…

结构体介绍(1)

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 结构体&#xff08;1&#xff09; 前言一、struct介绍结构体声明结构体创建和初始化struct 的特殊声明结构体自引用 二、结构体内存对齐2.1.对齐规则 总结 前言 结构体 属于…

十九、XML Extensible Markup Language

1、DTD简介 如果XML内容写错了怎么办? 如何校验XML语法的正确与否? 1)什么是DTD DTD(文档类型定义)可以定义合法的XML文档结构,它使用一系列合法元素来定义文档的结构。DTD分别为内部DTD和外部DTD,所谓内部DTD是指该DTD在某个文档的内部,只被该文档使用。外部DTD是指该DT…

分层图像金字塔变压器

文章来源&#xff1a;hierarchical-image-pyramid-transformers 2024 年 2 月 5 日 本文介绍了分层图像金字塔变换器 (HIPT)&#xff0c;这是一种新颖的视觉变换器 (ViT) 架构&#xff0c;设计用于分析计算病理学中的十亿像素全幻灯片图像 (WSI)。 HIPT 利用 WSI 固有的层次结…