Qt 模块

  • QtCore
    • 核心功能
      • Qt核心特性
    • 线程和并发程序
    • IO资源和容器
    • QtCore继承关系树
  • QtGui
    • 应用视窗
    • 2D图形
    • OpenGL和OpenGL ES集成
    • QtGui继承关系树
  • Qt Multimedia
  • Qt Multimedia Widgets
  • Qt Network
  • Qt QML
  • Qt Quick
  • Qt Quick Controls
  • Qt Quick Dialogs
  • Qt Quick Layouts
  • Qt SQL
  • Qt Test
  • Qt WebKit
  • Qt WebKit Widgets
  • Qt Widgets
    • 窗口部件 Widgets
    • 风格 Styles
    • 布局 Layouts
    • ModelView类
    • 图形视图
    • QtWidgets继承关系树

以下模块均引用官方文档内容,并进行简要的中文说明,同时我会通过实例介绍如何用PyQt5 对Qt各类模块进行使用。

为了更方便搞懂个模块调用和集成关系,我利用模块继承关系树来分类各模块组别,其重要内容为官方文档,在深入了解各模块功能时作为参考,也作为重点了解内容。

QtCore

QtCore是Qt中被其他类所使用的核心非图形类,所有Qt模块均依赖该模块,QtCore是最为常用的模块。
模块导入:

import QtCore

核心功能

  • 对象间通过信号(signal)和槽(slot)进行通信
  • 可查询和设计的对象属性
  • 分层的且可查询的对象树组织
  • 智能指针(QPointer)
  • 跨库边界动态计算

Qt核心特性:

  • 元对象系统
  • 属性系统
  • 对象Model
  • 对象结构树和所属权
  • 信号/槽

线程和并发程序

Qt提供跨平台线程类、传递事件安全线程和跨线程信号/槽连接。多线程编程也是非常有用的规范,来防止执行耗时运算导致的应用用户界面冻结。

I/O,资源和容器

  • 容器(Container)类
  • 序列化Qt数据类型
  • 内含共享
  • 在应用的可执行文件(exe)中储二进制文件(跨平台)
  • Qt资源系统

QtCore继承关系树


QtGui

GUI组件的基础类,包括OpenGL。QtGui提供视窗化系统整合、事件处理、OpenGL和OpenGL ES集成、2D图形、基础成像、字体和文本。这些类在Qt的用户界面技术内部使用,并且也可以直接使用,例如用低级OpenGL ES图形API写应用。
模块导入:

import QtGui

Qt为应用开发者写用户界面提供更高级别API,Qt Quick比Qt GUI模块更加适用。

应用视窗

QGuiApplication和QWindow是QtGui中最重要的两个类,一个Qt应用如果想将内容显示到屏幕上离不开到他们。QGuiApplication包含的主事件循环,负责处理视窗系统和其他源的所有事件的处理和调度,也负责处理应用的初始化和终止。
QWindow类作用于底层视窗化系统中的窗口,它提供很多虚函数来处理视窗化系统的事件(QEvent),像触摸输入、曝光、焦点、键盘敲击和几何变化等。

2D图形

QtGui模块包含2D图形、图片、字体和高级排版。QWindow在创建QSurface::RasterSurface类型外观时,可以组合使用QBackingStore、QPainter(Qt高度优化的2D矢量图形API)。QPainter支持画线、多边形、矢量路径、图片和文本。
Qt可以使用QImage和QPixmap类来加载和保存图片,Qt默认支持很多常见图片格式,包括JPEG和PNG等,用户可以通过QImageIOPlugin类增加额外的格式。
Qt排版用QTextDocument类,它联合使用了QPainter API和QtFont类。应用偏好更低层级的API来处理字体和文本,像QRawFont和QGlyphRun类。

OpenGL和OpenGL ES集成

根据不同平台支持情况,QWindow提供OpenGL和OpenGL ES渲染。OpenGL渲染的开启,通过将QWindow的外观类型设置为QSurface::OpenGLSurface,用QSurfaceFormat选择格式,然后创建QOpenGLContext来管理原生OpenGL上下文。此外,QOpenGLPaintDevice类,能使用OpenGL加速QPainter渲染,简化OpenGL代码编写,降低扩展操作复杂度。QOpenGLFunctions使应用可以在桌面级OpenGL中使用所有OpenGL ES 2函数,且不用手动解析OpenGL函数指针。因此允许跨平台应用开发——移动或嵌入式设备,并且在Qt API的一些类中封装了原生OpenGL功能:

  • QOpenGLBuffer
  • QOpenGLFramebufferObject
  • QOpenGLShaderProgram
  • QOpenGLTexture
  • QOpenGLDebugLogger
  • QOpenGLTimerQuery
  • QOpenGLVertexArrayObject

QtGui模块也包含一些数学类,来援助大部分与3D图形有关的常用数学运算,这些类有QMatrix4x4、QVector4D和QQuaternion。用QSurface::OpenGLSurface类型创建的QWindow可以联合使用QPainter和QOpenGLPaintDevice,通过牺牲一些视觉质量,来获得OpenGL硬件加速2D图形。

QtGui继承关系树


Qt Multimedia


Qt Multimedia Widgets


Qt Network


Qt QML


Qt Quick


Qt Quick Controls


Qt Quick Dialogs


Qt Quick Layouts


Qt SQL


Qt Test


Qt WebKit


Qt WebKit Widgets


Qt Widgets

扩展Qt GUI的窗口部件类,Qt Widgets模块提供一套UI元素来创建经典桌面式用户界面。在Qt中窗口部件是创建用户界面的主要元素,Widgets可以显示数据和状态信息,接收用户输入,并且为其他应该组合在一起的窗口部件提供容器(container)。
模块导入:

import QtWidgets

窗口部件 Widgets

QWidget类提供基础的性能,如渲染到屏幕,处理用户输入事件。Qt提供的所有UI元素是QWidget子类,或是被用于连接QWidget子类。即:

QtWidgets.QWidget

创建自定义窗口部件可以通过QWidget子类化或适合的子类实现,并重载虚拟事件程序。子类化例如:

import QtWidgets

class InputDialog(QtWidgets.QWidget):
    def __init__(self):
        super(InputDialog, self).__init__()
  • 窗口和对话部件
  • 应用主窗口
  • 对话窗口
  • 窗口部件中的键盘焦点

风格 Styles

风格绘制代表窗口部件和封装GUI外观,Qt的内建窗口部件使用QStyle类来执行几乎所有这类绘制。除了已经子类化QStyle之外,Qt样式表在自定义窗口部件外观方面有非常强大的机制。

布局 Layouts

Layouts是自动化排列容器内子部件的一个简单灵活的途径,每个窗口部件通过sizeHint 和sizePolicy属性给layout报告它的尺寸需求,然后layout相应的分布可用空间。

Model/View类

Model/View类管理展现给用户数据的方式,构建表/表格的数据驱动型应用使用models、views和delegates来分离数据。

图形视图

图形视图框架用来管理和交互大量自定2D图形项、视觉化视图组件项,支持缩放和旋转。

QtWidgets继承关系树


你可能感兴趣的:(PyQt,qt,Qt模块,PyQt)