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 ),例如触摸输入、曝光、焦点、按键和几何变化。

二维图形#

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

使用具有 RasterSurface 表面类型的 QWindow 可以与 QBackingStore 和 Qt 高度优化的二维矢量图形 API QPainter 结合使用。 QPainter 可以绘制线条、多边形、矢量路径、图像和文本。更多详细信息,请参阅绘制系统位图窗口示例

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

Qt中的排版是通过QTextDocument完成的,该文档使用QPainter API并结合Qt的字体系列,主要是QFont。那些偏好使用更低级别的API进行文本和字体处理的程序可以使用QRawFontQGlyphRun等类。

OpenGL 和 OpenGL ES 集成#

<代码 class="xref py py-class docutils literal notranslate">QWindow 支持使用OpenGL和OpenGL ES进行渲染,具体取决于平台的支持情况。通过将 <代码 class="xref py py-class docutils literal notranslate">QWindow 的表面类型设置为 <代码 class="xref py py-attr docutils literal notranslate">OpenGLSurface ,并使用 <代码 class="xref py py-class docutils literal notranslate">QSurfaceFormat 来选择格式属性,然后创建一个 <代码 class="xref py py-class docutils literal notranslate">QOpenGLContext 来管理原生OpenGL上下文,可以启用OpenGL渲染。此外,Qt还包含 <代码 class="xref py py-class docutils literal notranslate">QOpenGLPaintDevice ,它实现了OpenGL加速 <代码 class="xref py py-class docutils literal notranslate">QPainter 渲染,并提供了简化OpenGL代码编写、处理扩展以及OpenGL ES 2与桌面OpenGL差异性的便利类。便利类包括 <代码 class="xref py py-class docutils literal notranslate">QOpenGLFunctions ,它使得应用可以在桌面OpenGL上使用所有OpenGL ES 2函数,无需手动解析OpenGL函数指针。这使得针对移动或嵌入式设备的应用的跨平台开发成为可能,并提供将原生OpenGL功能包装在更简单的Qt API中的类。

有关更多信息,请参阅 <代码 class="xref py py-class docutils literal notranslate">OpenGL Window Example

Qt GUI模块还包含一些数学类,以帮助进行与3D图形相关的最常见数学运算。这些类包括 <代码 class="xref py py-class docutils literal notranslate">QMatrix4x4 , <代码 class="xref py py-class docutils literal notranslate">QVector4D 和 <代码 class="xref py py-class docutils literal notranslate">QQuaternion

使用 <代码 class="xref py py-attr docutils literal notranslate">OpenGLSurface 创建的 <代码 class="xref py py-class docutils literal notranslate">QWindow 可以与 <代码 class="xref py py-class docutils literal notranslate">QPainter 和 <代码 class="xref py py-class docutils literal notranslate">QOpenGLPaintDevice 结合使用,牺牲一些视觉效果以获得OpenGL硬件加速的2D图形。

集成Vulkan

Qt GUI支持 Vulkan API。Qt应用程序需要存在 LunarG Vulkan SDK

在Windows上,SDK设置环境变量 <代码 class="docutils literal notranslate">VULKAN_SDK,该变量将由 <代码 class="docutils literal notranslate">configure 脚本检测。

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

相关类

  • 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

I

K

L

M

N

O

P

Q

R

S

T

U

V

W

X

函数列表#