- Qt 6.9
- Qt GUI
- Qt 6.9.2 Reference Documentation

# Qt GUI

The Qt GUI module provides classes for windowing system integration, event handling, OpenGL and OpenGL ES integration, 2D graphics, basic imaging, fonts, and text. These classes are used internally by Qt's user interface technologies but can also be used directly, for example to write applications using low-level OpenGL ES graphics APIs.

For application developers writing user interfaces, Qt provides higher level APIs, like Qt Quick, that are much more suitable than the enablers found in the Qt GUI module.

## Using the Module

Using a Qt module's C++ API requires linking against the module library, either directly or through other dependencies. Several build tools have dedicated support for this, including CMake and qmake.

### Building with CMake

Use the `find_package()` command to locate the needed module component in the `Qt6` package:

     find_package(Qt6 REQUIRED COMPONENTS Gui)
     target_link_libraries(mytarget PRIVATE Qt6::Gui)

For more details, see the Build with CMake overview.

### Building with qmake

If you use qmake to build your projects, Qt GUI is included by default. To disable Qt GUI, add the following line to your `.pro` file:

     QT -= gui

## Articles and Guides

- Qt GUI Overview
  - Qt GUI Application Windows
  - Qt GUI 2D Graphics
  - Qt GUI Accelerated 2D and 3D Graphics using the Qt RHI
  - Qt GUI Matrix and Vector Math
  - Qt GUI OpenGL and OpenGL ES Integration
  - Qt GUI Vulkan Integration

## Reference

- Qt GUI C++ Classes
  - Event Classes
  - Painting Classes
  - Rendering in 3D

## Module Evolution

Changes to Qt GUI lists important changes in the module API and functionality that were done for the Qt 6 series of Qt.

## Licenses and Attributions

Qt GUI is available under commercial licenses from The Qt Company. In addition, it is available under free software licenses: The GNU Lesser General Public License, version 3, or the GNU General Public License, version 2. See Qt Licensing for further details.

Furthermore, Qt GUI in Qt 6.9.2 may contain third-party modules under following permissive licenses:

Adobe Glyph List For New Fonts, version 1.7 | BSD 3-Clause "New" or "Revised" License
Anti-aliasing rasterizer from FreeType 2 | Freetype Project License or GNU General Public License v2.0 only
Cocoa Platform Plugin | BSD 3-clause "New" or "Revised" License
D3D12 Memory Allocator, version f128d39b7a95b4235bd228d231646278dc6c24b2 | MIT License
DejaVu Fonts, version 2.37 | Bitstream Vera Font License
Emoji Segmenter, version 0.4.0 | Apache License 2.0
Freetype 2 - Bitmap Distribution Format (BDF) support | MIT License
Freetype 2 - Portable Compiled Format (PCF) support | MIT License and MIT Open Group variant
Freetype 2 - zlib | zlib License
Freetype 2, version 2.13.3 | Freetype Project License or GNU General Public License v2.0 only
HarfBuzz-NG, version 11.3.3 | MIT License
LibJPEG-turbo, version 3.1.1 | Independent JPEG Group License and BSD 3-Clause "New" or "Revised" License
LibPNG, version 1.6.50 | libpng License and PNG Reference Library version 2
MD4C, version 0.5.2 | MIT License
Mipmap generator for D3D12, version 0aa79bad78992da0b6a8279ddb9002c1753cb849 | MIT License
Native Style for Android | Apache License 2.0
OpenGL ES 2 Headers, version Revision 27673 | MIT License
OpenGL Headers, version Revision 27684 | MIT License
Pixman, version 0.17.12 | MIT License
Smooth Scaling Algorithm | BSD 2-clause "Simplified" License and Imlib2 License
Vulkan API Registry, version 1.3.223 | Apache License 2.0 or MIT License
Vulkan Memory Allocator, version 3.1.0 | MIT License
WebGradients | MIT License
Wintab API | LCS-Telegraphics License
X Server helper | X11 License and Historical Permission Notice and Disclaimer
XCB-XInput | MIT License
sRGB color profile icc file | International Color Consortium License