qt模块学习记录

qt模块学习记录

  • [一、Qt Core其他模块都用到的核心非图形类](#一、Qt Core其他模块都用到的核心非图形类)
  • [二、Qt GUI 设计 GUI 界面的基础类,包括 OpenGL](#二、Qt GUI 设计 GUI 界面的基础类,包括 OpenGL)
  • 三、功能模块
    • [Qt Network 使网络编程更简单和轻便的类](#Qt Network 使网络编程更简单和轻便的类)
    • [Qt SQL 使用 SQL 用于数据库操作的类](#Qt SQL 使用 SQL 用于数据库操作的类)
    • [Qt Multimedia 音频、视频、摄像头和广播功能的类](#Qt Multimedia 音频、视频、摄像头和广播功能的类)
  • 四、老式界面
    • [Qt Widgets 用于构建 GUI 界面的 C++ 图形组件类](#Qt Widgets 用于构建 GUI 界面的 C++ 图形组件类)
  • [五、现代界面:Qt Quick 全家桶](#五、现代界面:Qt Quick 全家桶)
    • [Qt QML 用于 QML 和 JavaScript 语言的类](#Qt QML 用于 QML 和 JavaScript 语言的类)
    • [Qt Quick 用于构建具有定制用户界面的动态应用程序的声明框架](#Qt Quick 用于构建具有定制用户界面的动态应用程序的声明框架)
    • [Qt Quick Controls 创建桌面样式用户界面,基于 Qt Quick 的用户界面控件](#Qt Quick Controls 创建桌面样式用户界面,基于 Qt Quick 的用户界面控件)
    • [Qt Quick Dialogs 用于 Qt Quick 的系统对话框类型](#Qt Quick Dialogs 用于 Qt Quick 的系统对话框类型)
    • [Qt Quick Layouts 用于 Qt Quick 2 界面元素的布局项](#Qt Quick Layouts 用于 Qt Quick 2 界面元素的布局项)
  • 六、媒体界面
    • [Qt Multimedia Widgets 实现多媒体功能的界面组件类](#Qt Multimedia Widgets 实现多媒体功能的界面组件类)
  • 七、测试
    • [Qt Test 用于应用程序和库进行单元测试的类](#Qt Test 用于应用程序和库进行单元测试的类)
  • 总之

一、Qt Core其他模块都用到的核心非图形类

c 复制代码
Qt Core = 提供界面无关的基础功能比如:
字符串
列表
时间
线程
信号槽(Qt 最核心机制)
事件循环
文件读写
配置读写
插件机制
它不画窗口、不显示按钮、不做界面!

二、Qt GUI 设计 GUI 界面的基础类,包括 OpenGL

c 复制代码
Qt GUI = 画布 + 画笔 + 窗口系统
它能做:
创建窗口
画点、线、矩形
处理鼠标 / 键盘
显示图片
支持 OpenGL
但它没有按钮、没有输入框、没有菜单。

三、功能模块

Qt Network 使网络编程更简单和轻便的类

c 复制代码
Qt Network = 网线 + 网卡 + 网络协议
它能干嘛?
发 HTTP 请求(访问网页)
TCP/IP 通信(两台电脑互相发数据)
UDP 广播
SSL 加密(https 那种安全加密)
OPC UA 底层通信也靠它!

Qt SQL 使用 SQL 用于数据库操作的类

c 复制代码
Qt SQL = 让 Qt 程序能读写数据库的一套工具支持所有主流数据库:
SQLite(嵌入式,无需安装)
MySQL
SQL Server
PostgreSQL
Oracle
c 复制代码
它能做什么?(超实用)
连接数据库
创建表
插入数据(存 OPC UA 采集值)
查询数据(历史记录、趋势图)
修改、删除数据
支持事务(保证数据安全)

Qt Multimedia 音频、视频、摄像头和广播功能的类

c 复制代码
Qt Multimedia = 底层音频、视频、摄像头、播放核心功能
能干什么?

 1. 播放音乐 
 2. 播放视频 
 3. 打开摄像头 
 4. 录音 
 5. 收音机 / 广播

负责:解码、播放、采集、控制。

四、老式界面

Qt Widgets 用于构建 GUI 界面的 C++ 图形组件类

c 复制代码
Qt Widgets = 现成的窗口、按钮、表格、树、滑块
它包含:
QMainWindow(主窗口)
QPushButton(按钮)
QTreeView(树,OPC UA Viewer 显示节点就是它)
QTableView(表格)
QLineEdit(输入框)
QMenu(菜单)

五、现代界面:Qt Quick 全家桶

Qt QML 用于 QML 和 JavaScript 语言的类

c 复制代码
Qt QML 模块 = 让 QML 界面能跑起来的引擎
Qt QML 模块做什么?

 1. 解析 QML 语法 
 2. 运行界面 
 3. 让界面和 C++ 通信 
 4. 支持 JavaScript 逻辑

Qt Quick 用于构建具有定制用户界面的动态应用程序的声明框架

c 复制代码
Qt Quick= 动态界面的底层核心(画布 + 引擎)或者一块灵活的动态画布
作用:
提供最基础的界面元素
支持动画、过渡、触摸、自定义 UI
可以自己画按钮、窗口、界面

Qt Quick Controls 创建桌面样式用户界面,基于 Qt Quick 的用户界面控件

c 复制代码
Qt Quick Controls= 现成的界面控件(按钮、输入框、开关、列表)专门给 Qt Quick 用。
包含:
Button(按钮)
TextField(输入框)
Slider(滑块)
Switch(开关)
Label(文字)

Qt Quick Dialogs 用于 Qt Quick 的系统对话框类型

c 复制代码
Qt Quick Dialogs= 弹出框(文件选择、消息框、确认框),就是弹出的小窗口。
比如:

 1. 打开文件 
 2. 保存文件 
 3. 提示 "确定要删除吗?" 
 4. 报错提示框

Qt Quick Layouts 用于 Qt Quick 2 界面元素的布局项

c 复制代码
Qt Quick Layouts= 自动排版工具(让界面不乱),不用手动算坐标,界面自动整齐。
作用:
自动排列按钮
窗口拉伸时控件自动适应
垂直布局、水平布局、网格布局

六、媒体界面

Qt Multimedia Widgets 实现多媒体功能的界面组件类

c 复制代码
Qt Multimedia Widgets = 显示窗口(画面、视频框)

七、测试

Qt Test 用于应用程序和库进行单元测试的类

c 复制代码
Qt Test = 专门给 Qt 程序写【单元测试】的工具

总之

c 复制代码
                     你的应用程序
                              ↓
┌───────────────────────────────────────────┐
│ 功能模块                                  │
│    ├─ Qt OPC UA        工业设备通信        │
│    ├─ Qt Network       网络通信           │
│    ├─ Qt SQL           数据库             │
│    ├─ Qt Multimedia    音视频/摄像头      │
│    └─ Qt Test          单元测试(测代码) │
└───────────────────────────────────────────┘
                              ↓
┌───────────────────────────────────────────┐
│ 界面两大分支                              │
│    ├─ Qt Widgets        传统桌面界面      │
│    │                                    │
│    └─ Qt Quick 全家桶    现代动态界面     │
│        ├─ Qt Quick        核心引擎        │
│        ├─ Qt QML          QML语言解析    │
│        ├─ Qt Quick Controls 按钮/控件    │
│        ├─ Qt Quick Dialogs  弹出对话框   │
│        └─ Qt Quick Layouts  界面排版     │
└───────────────────────────────────────────┘
                              ↓
┌───────────────────────────────────────────┐
│ Qt GUI              底层画图、窗口、事件   │
└───────────────────────────────────────────┘
                              ↓
┌───────────────────────────────────────────┐
│ Qt Core             核心基础(所有都靠它) │
└───────────────────────────────────────────┘

做 OPC UA 客户端 / 工控软件:
Core → GUI → Widgets → Network → 软件
做 现代触摸屏界面:
Core → GUI → QML → Quick → ... → Network → 软件
相关推荐
Scott9999HH7 小时前
【IIoT流量实战】蒸汽管道阀门全关却仍有流量?用 Python 实现涡街信号 FFT 频谱分析与温压全补偿积算网关,深度拆解靠谱的涡街流量计厂家硬核技术标准
开发语言·python
码智社8 小时前
AES加密原理详解及Java实现加解密实战
java·开发语言
AI云海9 小时前
python 列表、元组、集合和字典
开发语言·python
萧瑟余晖9 小时前
JDK 26 新特性详解
java·开发语言
马优晨10 小时前
Freemarker 完整讲解(后端 Java 模板引擎)
java·开发语言·freemarker·freemarker 完整讲解·freemarker模板引擎
a11177611 小时前
2FA 验证码生成器(github登录验证 app)
笔记·学习
我的xiaodoujiao12 小时前
API 接口自动化测试详细图文教程学习系列32--Allure测试报告2
python·学习·测试工具·pytest
人邮异步社区12 小时前
怎么把C语言学到精通?
c语言·开发语言
心平气和量大福大12 小时前
C#-WPF-控件-TextBox 数据绑定
开发语言·c#·wpf
ttwuai13 小时前
Cursor 生成 CRUD 后,Go 后台接口别只测 200:JWT、RBAC 和 tenant_id 怎么验
开发语言·后端·golang