百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 热门文章 > 正文

抓大放小,瞅瞅 Qt 的几个基础模块

bigegpt 2024-08-06 11:52 8 浏览

大家好,对于 Qt 初学者而言,首先需要学习的就是 Qt 的基础模块 ( Qt Essentials )。

这些模块对于大多数 Qt 应用程序都是通用的,适用于 Qt 支持的所有平台,并且在整个 Qt5 生命周期中保持源码和二进制兼容。

另外一些用于特殊目的的模块,被视为附加模块 ( Qt Add-Ons ),即使它们在 Qt 所支持的所有平台上都可用。


Qt 基础模块

名称功能Qt Core非图形相关的基础类。Qt GUI图形界面相关的基础类。Qt Multimedia用于支持音视频、摄像头功能的类。Qt Multimedia Widgets用于支持多媒体的图形类。Qt Network用于简化网络编程的类。Qt QMLQML and JavaScript 相关的类。Qt Quick用于构建高动态和易交互的用户界面的声明式框架。Qt Quick Controls提供轻量级的 QML 类型,用于为桌面、嵌入式和移动设备创建高性能的用户界面。Qt Quick Dialogs用于创建对话框的 QML types。Qt Quick Layouts用于布局的 QML typesQt Quick Test用于对 QML 应用的进行单元测试Qt SQL用于 SQL 相关的操作Qt Test用于对 Qt 应用和库进行单元测试Qt Widgets提供了一组 UI 元素来创建经典用户界面
我们先了解这几个模块:

Qt Core;
Qt GUI;
Qt Widgets;
Qt Multimedia;
Qt Network;
Qt QML;
Qt Quick;

Qt Core 模块

提供了 Qt 里最核心的、且非 GUI相关的功能,包括但不限于:

1、 最核心的功能,包括元对象系统 ( QObject )、属性系统 ( Q_PROPERTY() ),对象模型 ( QMetaXXX )、信号槽机制 (用于对象间通讯)等;

2、线程 ( QThread、QRunnable 等 )和并发 ( QMutex、QSemaphore 等 );

3、输入/输出 ( QIODevice 等 )、资源 ( xxx.qrc文件 ) 和容器 ( QVector<T> 等 );

4、附加框架,包括动画 ( QXXXAnimation )、JSON ( QJsonXXX )、状态机 ( QStateMachine )、插件 ( QXXXPlugin ) 、事件处理 ( QEvent ) 等;

5、等等...

更详细的说明:

https://doc.qt.io/qt-5/qtcore-index.html

Qt GUI 模块

提供 GUI 程序的基本功能,包括与窗口系统的集成、事件处理、OpenGL 和 OpenGL ES 集成、2D 图像、字体、拖放等。

这些类一般由 Qt 用户界面类内部使用,同时也可以被用于访问底层的 OpenGL ES 图像 API。

嵌入式物联网需要学的东西真的非常多,千万不要学错了路线和内容,导致工资要不上去!

无偿分享大家一个资料包,差不多150多G。里面学习内容、面经、项目都比较新也比较全!某鱼上买估计至少要好几十。

点击这里找小助理0元领取:嵌入式物联网学习资料(头条)




按功能细分:

1、应用窗口 (QGuiApplication、 QWindow 等)。

QGuiApplication 提供主事件循环,所有的事件包括界面绘画和用户输入等都会在这个循环里进行处理和分发。

QWindow 在底层窗口系统中代表一个窗口。

2、2D 图像 ( QPainter 、QImage 等 )、字体 ( QFont )。

3、OpenGL and OpenGL ES ( QOpenGLContext 等)相关的整合。Qt 支持用 OpenGL and OpenGL ES 来渲染窗口。

4、Vulkan 相关的整合 (QVulkanInstance、QVulkanWindow 等)。

5、拖放相关 (QDrag、QDragEnterEvent)

更详细的说明:

https://doc.qt.io/qt-5/qtgui-index.html

Qt Widgets 模块

Qt Widgets 提供了一组的 UI 元素,用于构建用户界面。

Widget 是在 Qt 中创建用户界面的主要元素,它可以显示数据和状态信息,接受用户输入,或者作为容器用于包含其他 Widget。

QWidget 类提供了向屏幕渲染和处理用户输入事件的基本能力。Qt 提供的所有 UI 元素要么是 QWidget 的子类,要么是与 QWidget 子类关联使用。通过子类化 QWidget 并重新实现虚拟事件处理可以创建自定义的 Widget。

Qt Widgets 里的包含的类非常多,常见的如:QPushButton、QSlider、QComboBox、QDialog、QLineEdit,大概有几十个吧。

完整的类列表:

https://doc.qt.io/qt-5/qwidget.html

更详细的说明:

https://doc.qt.io/qt-5/qtwidgets-index.html

Qt Multimedia 模块

Qt 多媒体相关的支持都位于此模块中。

支持的功能:

  • 访问原始音频设备进行输入和输出;
  • 播放低延迟的声音效果;
  • 播放播放列表中的音视频文件;
  • 录制音频并进行压缩;
  • 调整和收听广播电台;
  • 使用相机,包括取景器、图像捕捉和电影录制;
  • 等等...

按功能划分:

1、音频相关。

Qt Multimedia 提供了一系列的音频类,涵盖了音频输入 ( QAudioRecorder )、输出 ( QMediaPlayer ) 和处理的低级和高级用法 ( QSoundEffect、QAudioEncoderSettings) 等。

2、视频相关。

Qt Multimedia 提供了用于播放和操作视频数据的上层和底层 C++ 类。例如,解码 (QMediaPlayer ),编码 ( QMediaRecorder )、帧数据 ( QVideoFrame )、显示控件 ( QVideoWidget、QGraphicsVideoItem ) 等。

3、Camera 相关

Qt Multimedia 提供了许多 Camera 相关的类。例如,探测 Camera ( QCameraInfo、QCamera )、预览 ( QCameraViewfinder )、采集图像 ( QCameraImageCapture )、录制视频 ( QMediaRecorder )、参数控制 ( QCameraFocus、QCameraExposure ) 等;

4、Radio 相关

暂时用不到,就不展开了。

更详细的说明:

https://doc.qt.io/qt-5/qtmultimedia-index.html

Qt Network 模块

Qt Network 提供了一系列的网络类,极大地简化了网络编程。

按功能划分:

1、HTTP 、FTP 相关。

包括管理网络访问 ( QNetworkAccessManager )、发送请求 ( QNetworkRequest )、接收响应和数据 ( QNetworkReply )。

2、TCP 相关。

包括 TCP Socket 通讯 ( QTcpSocket )、搭建 TCP 服务端 ( QTcpServer ) 等。

3、UDP 相关。

主要就是 UDP Socket 通讯 ( QUdpSocket )。

4、其他。

主机信息 ( QHostInfo )、代理 ( QNetworkProxy );

更详细的说明:

https://doc.qt.io/qt-5/qtnetwork-index.html

Qt QML 模块

QML 是一种用于描述应用程序用户界面的声明式编程语言。

Qt QML 模块为用 QML 开发应用程序和库提供了一个框架。它定义并实现了 QML 语言和引擎的基础结构。

另外,它支持应用程序开发人员能够用自定义类型来扩展 QML语言,并使 QML、JavaScript 和 C++ 进行混合开发。

以入门为目的话,先掌握如何使用 QML 就好,不需要了解 QML 模块的内部实现。

Qt QML 的入门还是比较容易的,感兴趣的可以参考文章:

用一篇小短文,带你进入 QML 的美妙世界

这几个 QML 版的 Hello World 你学会了吗?

更详细的说明:

https://doc.qt.io/qt-5/qtqml-index.html

Qt Quick 模块

Qt Quick 模块是编写 QML 应用程序的标准库。

虽然 Qt QML 模块提供了 QML 引擎和语言基础设施,但 Qt Quick 模块提供了用 QML 创建用户界面所需的所有基本类型,包括一些 C++ 的类,和大量的 QML Types。

QML Types 的作用和 C++ 里的 Class 类似,它们都是对事物的抽象,用户使用它们进行对象的实例化。

作为初学者,我们应该先重点关注 QML Types。

Qt Quick 里有非常多的 QML Types,大多数都继承自 Item 这个 QML Type。

Window {
    [...]
    Item {
        Image {
            source: "qrc:/logo.png"
        }
        Image {
            width: 100
            height: 100
            source: "qrc:/logo.png"
        }
    }
}

原文链接:https://mp.weixin.qq.com/s/Jb63D8Fmqx2Vye4ZjI9CKg

文章转载自:老吴嵌入式

文章来源于:抓大放小,瞅瞅 Qt 的几个基础模块

原文链接:抓大放小,瞅瞅 Qt 的几个基础模块

版权声明:本文来源于网络,免费传达知识,版权归原作者所有,如涉及作品版权问题,请联系我进行删除

相关推荐

方差分析简介(方差分析通俗理解)

介绍方差分析(ANOVA,AnalysisofVariance)是一种广泛使用的统计方法,用于比较两个或多个组之间的均值。单因素方差分析是方差分析的一种变体,旨在检测三个或更多分类组的均值是否存在...

正如404页面所预示,猴子正成为断网元凶--吧嗒吧嗒真好吃

吧嗒吧嗒,绘图:MakiNaro你可以通过加热、冰冻、水淹、模塑、甚至压溃压力来使网络光缆硬化。但用猴子显然是不行的。光缆那新挤压成型的塑料外皮太尼玛诱人了,无法阻挡一场试吃盛宴的举行。印度政府正...

Python数据可视化:箱线图多种库画法

概念箱线图通过数据的四分位数来展示数据的分布情况。例如:数据的中心位置,数据间的离散程度,是否有异常值等。把数据从小到大进行排列并等分成四份,第一分位数(Q1),第二分位数(Q2)和第三分位数(Q3)...

多组独立(完全随机设计)样本秩和检验的SPSS操作教程及结果解读

作者/风仕在上一期,我们已经讲完了两组独立样本秩和检验的SPSS操作教程及结果解读,这期开始讲多组独立样本秩和检验,我们主要从多组独立样本秩和检验介绍、两组独立样本秩和检验使用条件及案例的SPSS操作...

方差分析 in R语言 and Excel(方差分析r语言例题)

今天来写一篇实际中比较实用的分析方法,方差分析。通过方差分析,我们可以确定组别之间的差异是否超出了由于随机因素引起的差异范围。方差分析分为单因素方差分析和多因素方差分析,这一篇先介绍一下单因素方差分析...

可视化:前端数据可视化插件大盘点 图表/图谱/地图/关系图

前端数据可视化插件大盘点图表/图谱/地图/关系图全有在大数据时代,很多时候我们需要在网页中显示数据统计报表,从而能很直观地了解数据的走向,开发人员很多时候需要使用图表来表现一些数据。随着Web技术的...

matplotlib 必知的 15 个图(matplotlib各种图)

施工专题,我已完成20篇,施工系列几乎覆盖Python完整技术栈,目标只总结实践中最实用的东西,直击问题本质,快速帮助读者们入门和进阶:1我的施工计划2数字专题3字符串专题4列表专题5流程控制专题6编...

R ggplot2常用图表绘制指南(ggplot2绘制折线图)

ggplot2是R语言中强大的数据可视化包,基于“图形语法”(GrammarofGraphics),通过分层方式构建图表。以下是常用图表命令的详细指南,涵盖基本语法、常见图表类型及示例,适合...

Python数据可视化:从Pandas基础到Seaborn高级应用

数据可视化是数据分析中不可或缺的一环,它能帮助我们直观理解数据模式和趋势。本文将全面介绍Python中最常用的三种可视化方法。Pandas内置绘图功能Pandas基于Matplotlib提供了简洁的绘...

Python 数据可视化常用命令备忘录

本文提供了一个全面的Python数据可视化备忘单,适用于探索性数据分析(EDA)。该备忘单涵盖了单变量分析、双变量分析、多变量分析、时间序列分析、文本数据分析、可视化定制以及保存与显示等内容。所...

统计图的种类(统计图的种类及特点图片)

统计图是利用几何图形或具体事物的形象和地图等形式来表现社会经济现象数量特征和数量关系的图形。以下是几种常见的统计图类型及其适用场景:1.条形图(BarChart)条形图是用矩形条的高度或长度来表示...

实测,大模型谁更懂数据可视化?(数据可视化和可视化分析的主要模型)

大家好,我是Ai学习的老章看论文时,经常看到漂亮的图表,很多不知道是用什么工具绘制的,或者很想复刻类似图表。实测,大模型LaTeX公式识别,出乎预料前文,我用Kimi、Qwen-3-235B...

通过AI提示词让Deepseek快速生成各种类型的图表制作

在数据分析和可视化领域,图表是传达信息的重要工具。然而,传统图表制作往往需要专业的软件和一定的技术知识。本文将介绍如何通过AI提示词,利用Deepseek快速生成各种类型的图表,包括柱状图、折线图、饼...

数据可视化:解析箱线图(box plot)

箱线图/盒须图(boxplot)是数据分布的图形表示,由五个摘要组成:最小值、第一四分位数(25th百分位数)、中位数、第三四分位数(75th百分位数)和最大值。箱子代表四分位距(IQR)。IQR是...

[seaborn] seaborn学习笔记1-箱形图Boxplot

1箱形图Boxplot(代码下载)Boxplot可能是最常见的图形类型之一。它能够很好表示数据中的分布规律。箱型图方框的末尾显示了上下四分位数。极线显示最高和最低值,不包括异常值。seaborn中...