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 → 软件
相关推荐
用户805533698035 天前
不止三件套:QObject 属性系统全关键字与运行时反射!
c++·qt
xcyxiner5 天前
DicomViewer (vcpkg Windows和ubuntu编译)7
qt
Quz10 天前
QML Hello World 入门示例
qt
xcyxiner13 天前
DicomViewer (dcmtk读取dcm文件)5
qt
xcyxiner13 天前
DicomViewer (后台线程处理文件)4
qt
xcyxiner14 天前
DicomViewer (添加模型类)3
qt
xcyxiner14 天前
DicomViewer (目录调整) 2
qt
xcyxiner15 天前
dcmtk vtk vtk-dicom(gdcm) 编译(debug) v2
qt
LDR00616 天前
Type-C 快充全面升级!LDR6601 赋能个人护理便携电机,重塑剃须刀 / 理发器新体验
c语言·开发语言
雪碧聊技术16 天前
Tree.js是什么?一文讲透
开发语言·javascript·ecmascript