PySide6.QtGui

详细描述

Qt GUI模块提供了用于窗口系统集成、事件处理、OpenGL和OpenGL ES集成、2D图形、基本图像处理、字体和文本的类。这些类被Qt的用户界面技术内部使用,也可以直接使用,例如用于编写使用低级OpenGL ES图形API的应用程序。

对于编写用户界面的应用程序开发者来说,Qt提供了更高级的API,如Qt Quick,这些API比Qt GUI模块中的启动器更合适。

应用程序窗口

Qt GUI模块中最重要的类是 QGuiApplicationQWindow。一个想要在屏幕上显示内容的Qt应用程序需要使用这些类。 QGuiApplication 包含主事件循环,其中处理和分发来自窗口系统和其他来源的所有事件。它还处理应用程序的初始化和终止。

QWindow 类表示底层窗口系统中的窗口。它提供了许多虚拟函数来处理来自窗口系统的事件(QEvent),例如触摸输入、曝光、焦点、按键和几何变化。

2D 图形

Qt GUI 模块包含用于 2D 图形、图像处理、字体和高级排版的类。

一个使用表面类型RasterSurface创建的QWindow可以与QBackingStoreQPainter结合使用,后者是Qt高度优化的2D矢量图形API。QPainter支持绘制线条、多边形、矢量路径、图像和文本。更多信息,请参见Paint SystemRaster Window Example

Qt 可以使用 QImageQPixmap 类来加载和保存图像。默认情况下,Qt 支持最常见的图像格式,包括 JPEG 和 PNG 等。用户可以通过 QImageIOPlugin 类添加对其他格式的支持。更多信息, 请参阅 读取和写入图像文件

在Qt中,排版是通过 QTextDocument 完成的,它结合了 QPainter API和Qt的 字体类,主要是 QFont 。 那些更喜欢使用更底层API来处理文本和字体的应用程序 可以使用像 QRawFontQGlyphRun 这样的类。

OpenGL 和 OpenGL ES 集成

QWindow 支持使用 OpenGL 和 OpenGL ES 进行渲染,具体取决于平台支持的内容。通过将 QWindow 的表面类型设置为 OpenGLSurface,使用 QSurfaceFormat 选择格式属性,然后创建一个 QOpenGLContext 来管理本机 OpenGL 上下文,可以启用 OpenGL 渲染。此外,Qt 还提供了 QOpenGLPaintDevice,它支持使用 OpenGL 加速的 QPainter 渲染,以及简化 OpenGL 代码编写并隐藏扩展处理和 OpenGL ES 2 与桌面 OpenGL 之间差异的便利类。这些便利类包括 QOpenGLFunctions,它允许应用程序在桌面 OpenGL 上使用所有 OpenGL ES 2 函数,而无需手动解析 OpenGL 函数指针。这使得针对移动或嵌入式设备的应用程序能够进行跨平台开发,并提供了将本机 OpenGL 功能封装在更简单的 Qt API 中的类。

欲了解更多信息,请参阅OpenGL窗口示例

Qt GUI模块还包含一些数学类,以帮助进行与3D图形相关的最常见数学运算。这些类包括QMatrix4x4QVector4DQQuaternion

一个使用OpenGLSurface创建的QWindow可以与QPainterQOpenGLPaintDevice结合使用,通过牺牲一些视觉质量来实现OpenGL硬件加速的2D图形。

Vulkan集成

Qt GUI 支持 Vulkan API。Qt 应用程序需要安装 LunarG Vulkan SDK

在Windows上,SDK设置了环境变量VULKAN_SDK,该变量将被configure脚本检测到。

在Android上,Vulkan头文件在NDK的API级别24中被添加。

相关类:

  • QVulkanDeviceFunctions
    • QVulkanExtension

    • QVulkanFunctions

    • QVulkanInfoVector

    • QVulkanInstance

    • QVulkanWindow

    • QVulkanWindowRenderer

欲了解更多信息,请参阅 Hello Vulkan Widget 示例Hello Vulkan Window 示例

拖放

Qt GUI 包括对拖放的支持。有关更多信息,请参阅拖放概述。

使用模块

要包含模块类的定义,请使用以下指令:

import PySide6.QtGui

班级列表

A

B

C

D

E

F

G

H

K

L

M

N

O

P

Q

R

S

T

U

V

W

X

函数列表