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 → 软件
相关推荐
晨曦中的暮雨7 小时前
Golang速通(Javaer版)
java·开发语言·后端·golang
小小编程路7 小时前
Python 还有容器类型互转、进制转换、字符编码转换
开发语言·windows·python
MartinYeung57 小时前
[论文学习]隐私保护联邦特徵选择与差分隐私的的工程实践框架
学习
qeen877 小时前
【C++】类与对象之类的默认成员函数(二)
android·c语言·开发语言·c++·笔记·学习
CRMEB系统商城7 小时前
CRMEB多商户系统(Java)v2.3公测版发布
java·开发语言·人工智能·小程序·开源·php
动能小子ohhh7 小时前
DocForge平台的设计与开发--文件上传接口的实现
开发语言·人工智能·python·langchain·ocr·fastapi
满天星83035778 小时前
【Qt】信号和槽(二) (自定义信号和槽)
开发语言·数据库·qt
超哥--8 小时前
B站视频内容智能分析系统(三):B站视频自动采集
java·开发语言·音视频·ai编程
Flandern11118 小时前
Pull Requests(PR)
学习·github·pr
夏语灬8 小时前
cryptography:Python 密码学标准库的终极选择
开发语言·python·密码学