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 → 软件
相关推荐
Xudde.2 小时前
班级作业笔记报告0x10
笔记·学习·安全·web安全·php
liulilittle2 小时前
C++ 无锁编程:单停多发送场景高性能方案
服务器·开发语言·c++·高性能·无锁·原子
飞Link2 小时前
大模型时代的“语言编程”:Prompt Engineering (提示词工程) 深度解析与实战指南
开发语言·python·prompt
无限进步_2 小时前
【C++】巧用静态变量与构造函数:一种非常规的求和实现
开发语言·c++·git·算法·leetcode·github·visual studio
Advancer-2 小时前
RedisTemplate 两种序列化实践方案
java·开发语言·redis
郝学胜-神的一滴2 小时前
Socket实战:从单端聊天到多用户连接的实现秘籍
服务器·开发语言·python·网络协议·pycharm
小超超爱学习99372 小时前
大数乘法,超级简单模板
开发语言·c++·算法
java1234_小锋2 小时前
Java高频面试题:MyBatis如何实现动态数据源切换?
java·开发语言·mybatis
knighthood20013 小时前
Qt5.15+VTK9.3.0实现点云点选功能
开发语言·qt