参考:https://zhuanlan.zhihu.com/p/393112717
掌握基本知识和框架
基础:会C,Python
下载的版本:QT5.3.0
视频:来自哔哩哔哩
链接:https://www.bilibili.com/video/BV1g4411H78N?from=search&seid=15320353679614905187&spm_id_from=333.337.0.0
基础知识文档:http://c.biancheng.net/view/9429.html
Qt Core 模块
提供了 Qt 里最核心的、且非 GUI相关的功能,包括但不限于:
1、 最核心的功能,包括元对象系统 ( QObject )、属性系统 ( Q_PROPERTY() ),对象模型 ( QMetaXXX )、信号槽机制 (用于对象间通讯)等;
2、线程 ( QThread、QRunnable 等 )和并发 ( QMutex、QSemaphore 等 );
3、输入/输出 ( QIODevice 等 )、资源 ( xxx.qrc文件 ) 和容器 ( QVector 等 );
4、附加框架,包括动画 ( QXXXAnimation )、JSON ( QJsonXXX )、状态机 ( QStateMachine )、插件 ( QXXXPlugin ) 、事件处理 ( QEvent ) 等;
5、等等…
Qt GUI 模块
提供 GUI 程序的基本功能,包括与窗口系统的集成、事件处理、OpenGL 和 OpenGL ES 集成、2D 图像、字体、拖放等。
这些类一般由 Qt 用户界面类内部使用,同时也可以被用于访问底层的 OpenGL ES 图像 API。
按功能细分:
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)
Qt Widgets 模块
Qt Widgets 提供了一组的 UI 元素,用于构建用户界面。
Widget 是在 Qt 中创建用户界面的主要元素,它可以显示数据和状态信息,接受用户输入,或者作为容器用于包含其他 Widget。
QWidget 类提供了向屏幕渲染和处理用户输入事件的基本能力。Qt 提供的所有 UI 元素要么是 QWidget 的子类,要么是与 QWidget 子类关联使用。通过子类化 QWidget 并重新实现虚拟事件处理可以创建自定义的 Widget。
Qt Widgets 里的包含的类非常多,常见的如:QPushButton、QSlider、QComboBox、QDialog、QLineEdit,大概有几十个吧。
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 ) 等;
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 );