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

文章目录

  • 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来替代繁琐的信号绑定

图形动画

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/580000.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

einsum 表达式

Einsun 简介 ein 就是爱因斯坦的ein,sum就是求和。einsum就是爱因斯坦求和约定,其实作用就是把求和符号省略。 B torch.einsum("ij->i", A) einsum接收的第一个参数为einsum表达式,-> 符号就相当于要把->前面的张量变…

求三个字符数组最大者(C语言)

一、N-S流程图&#xff1b; 二、运行结果&#xff1b; 三、源代码&#xff1b; # define _CRT_SECURE_NO_WARNINGS # include <stdio.h> # include <string.h>int main() {//初始化变量值&#xff1b;int i 0;char str[3][20];char string[20];//循环输入3个字符…

软件测试笔记_习题_面经

软件测试------按测试阶段划分有几个阶段? 单元测试、集成测试、系统测试、验收测试 软件测试------按是否查看源代码划分有几种测试方法? 黑盒、白盒、灰盒 软件测试------按是否运行划分有几种测试方法? 静态测试、动态测试 软件测试------按是否自动化划分有几种测试方…

Android 在attrs.xml添加属性时出现 Found item Attr/****** more than one time

Android 在attrs.xml添加属性时出现 Found item Attr/****** more than one time 问题描述解决办法方式一方式二 小结 问题描述 在Android应用开发过程中&#xff0c;经常需要自定义控件&#xff0c;并且定义控件的属性&#xff0c;方便灵活的修改控件的显示样式&#xff0c;提…

生成对抗网络的无载体信息隐藏算法简介

一、研究背景 随着互联网技术的广泛应用和移动智能设备的快速普及&#xff0c;人们有了更多的途径传播和获取信息。每天海量的数据以视频、音频、图像、文字等各类形式在互联网中产生&#xff0c;这为人们的生活带来了极大的便利&#xff0c;但同时也引起了人们对信息泄露的担…

从零入门区块链和比特币(第三期)

欢迎来到我的区块链与比特币入门指南&#xff01;如果你对区块链和比特币感兴趣&#xff0c;但不知道从何开始&#xff0c;那么你来对地方了。本博客将为你提供一个简明扼要的介绍&#xff0c;帮助你了解这个领域的基础知识&#xff0c;并引导你进一步探索这个激动人心的领域。…

【yolov8算法道路-墙面裂缝检测-汽车车身凹陷-抓痕-损伤检测】

yolo算法道路-墙面裂缝检测-汽车车身凹陷-抓痕-损伤检测 1. yolo算法裂缝检测-汽车车身凹陷-抓痕检测-汽车车身损伤检测2. yolo房屋墙面路面裂缝-发霉-油漆脱落-渗水-墙皮脱落检测3. 水泥墙面裂缝检测 YOLOv8算法是一种先进的目标检测技术&#xff0c;它基于YOLO系列算法的改进…

卓越体验的秘密武器:评测ToDesk云电脑、青椒云、天翼云的稳定性和流畅度

大家好&#xff0c;我是猫头虎。近两年随着大模型的火爆&#xff0c;我们本地环境常常难以满足运行这些大模型的硬件需求。因此&#xff0c;云电脑平台成为了一个理想的解决方案。今天&#xff0c;我将介绍并评测几款主流云电脑产品&#xff1a;ToDesk云电脑、天翼云电脑和青椒…

基于 SpringCloud 的在线交易平台乐优商城的设计与实现(四)

第 4 章 数据库设计 4.1 数据库设计原则 4.2.数据库概念结构设计 4.3 数据库表设计 4.4.本章小结 前面内容请移步 基于 SpringCloud 的在线交易平台乐优商城的设计与实现&#xff08;三&#xff09; 相关免费源码资源 乐优商城 第 4 章 数据库设计 4.1 数据库设计原…

现代永磁同步电机控制原理pdf及全套matlab仿真模型

现代永磁同步电机控制原理pdf及matlab仿真模型。全书包含SVPWM, DTC, Lun, smo, EKF, HFI等经典控制算法。将书中10章节涉及到的模型复原搭建模型。 模型获取链接&#xff1a;现代永磁同步电机控制原理pdf及全套matlab仿真模型

C语言 | Leetcode C语言题解之第56题合并区间

题目&#xff1a; 题解&#xff1a; /*** Return an array of arrays of size *returnSize.* The sizes of the arrays are returned as *returnColumnSizes array.* Note: Both returned array and *columnSizes array must be malloced, assume caller calls free().*/ stru…

mintab计数型测量系统分析

计数型测量系统是一种在特定领域内广泛应用的测量工具&#xff0c;它主要用于对事件发生的次数进行计数&#xff0c;而不是提供具体的数值数据。这种类型的测量系统在工业生产、科研领域以及通信、电子和航空航天等多个领域都有广泛的应用价值。计数型测量系统的分析方法包括重…

matlab回归学习

前言 所谓回归学习即预测&#xff0c;便是由已知的数据推测未知的数据&#xff0c;利用转速与转矩来推测电流。 1、数据准备 下面虚拟一组转速转矩以及电流数据。 speed [100 220 330 440 550 660]; torque [200 300 400 500 700 900]; I [400 500 603 739 821 912]; arr …

职场进阶秘籍:张驰咨询的六西格玛黑带培训!

你们是否对“六西格玛黑带培训”感到好奇&#xff1f;别担心&#xff0c;这不是什么遥不可及的概念&#xff0c;而是一次能让你职场生涯焕然一新的机会&#xff01; 六西格玛黑带培训在张驰咨询 在张驰咨询&#xff0c;我们提供的六西格玛黑带培训&#xff0c;就像是一把为你量…

mysql-sql-练习题-2

日期topN 日期最值 topN 任意区间topN 每年温度top2建表排名函数万能公式&#xff08;条关&#xff09; 任意区间 各科第1,3,5名排名函数万能公式 日期 本周过生日 -- 本周表示 加减日期 格式化 拼接 select * from student where date_format(s_age,concat(year(curdate()),…

微信小程序开发:2.小程序组件

常用的视图容器类组件 View 普通的视图区域类似于div常用来进行布局效果 scroll-view 可以滚动的视图&#xff0c;常用来进行滚动列表区域 swiper and swiper-item 轮播图的容器组件和轮播图的item项目组件 View组件的基本使用 案例1 <view class"container"&…

【FPGA】优化设计指南(一):设计原则

目录 避免采用不可综合的语句设计时采用同步的时钟组合逻辑与毛刺异步复位与同步复位动态分析与静态分析功能流水线时序违例乒乓操作面积和速度的平衡避免采用不可综合的语句 1.#1000延时语句 2.除法运算/,除非除数为2的整次幂 3.实数类型不可综合(real) 4.综上,使用可综合…

远程连接docker,实现本地发布版本到服务器

最近在学jenkins的时候&#xff0c;发现涉及到了docker的远程发布调用。后续应该还要自己搭建一个docker的本地仓库。 简单描述一下具体是如何实现的&#xff1a; 1、将docker的服务器开启2375端口&#xff08;注意&#xff0c;这里的开启是将端口直接暴露出去&#xff0c;不用…

【python技术】akshare爬取A股最新业绩预告保存进excel的简单示例

最近A股上市公司陆续在出年报和一季度报了&#xff0c; 心里寻思着要不用python把这些数据爬取下来分析下&#xff0c;说干就干。 数据来源网站东方财富&#xff1a;https://data.eastmoney.com/bbsj/ 我这个人比较懒&#xff0c;直接用akshare封装的方法来搞定 之前用aksha…

uniapp 对接谷歌第三方登录

1.登录谷歌开发者后台 https://console.developers.google.com/ 2.添加凭证 3.拿到客户端id后&#xff0c;项目中配置google登录&#xff1a; 示例代码&#xff1a; async googleLogin(){const { provider } await uni.getProvider({ service:oauth })if(provider.includes…
最新文章