Auf dieser Seite

Grafiken

Plattformübergreifende Anwendungen können Qt zur Darstellung grafischer Elemente nutzen. Qt abstrahiert die zugrunde liegenden Grafik-APIs der Plattformen, sodass sich Entwickler auf den Anwendungscode konzentrieren können.

Qt-Rendering-Hardware-Schnittstelle, die zwischen Qt und den Ziel-Grafik-APIs geschaltet ist

Das Qt Rendering Hardware Interface (RHI) übersetzt 3D-Grafikaufrufe aus Qt-Anwendungen in die auf der Zielplattform verfügbaren Grafik-APIs.

Die unterstützten Grafik-APIs sind:

  • OpenGL (Version 2.1 und höher)
  • OpenGL ES (Version 2.0 und höher)
  • Vulkan (Version 1.0 und höher)
  • Direct3D 11 (Version 11.1 und höher)
  • Direct3D 12 (Version 12.0 und höher)
  • Metal (Version 1.2 und höher)

Grafiken in Qt Quick

Qt Quick Anwendungen verwenden einen Szenengraphen für das Rendering. Der Szenengraph-Renderer kann effiziente Grafikaufrufe generieren und die Leistung steigern. Der Szenengraph verfügt über eine zugängliche API, die Ihnen die Flexibilität bietet, komplexe, aber schnelle Grafiken zu erstellen.

Die Seiten in der folgenden Liste enthalten weitere Informationen zum Rendering- Qt Quick -Anwendungen.

Auswahl eines Rendering-Pfads

Qt nutzt nach Möglichkeit die Grafik-APIs der Zielplattform; es ist jedoch möglich, den Rendering-Pfad von Qt auf eine bestimmte API festzulegen. In vielen Fällen kann die Wahl einer bestimmten API die Leistung steigern und ermöglicht es den Entwicklern, die Anwendung auf einer Plattform bereitzustellen, die über eine bestimmte Grafik-API verfügt. Auf der Seite „Rendering über die Qt-Rendering-Hardware-Schnittstelle“ erfahren Sie, wie Sie den Rendering-Pfad in „ QQuickWindow “ festlegen.

2D-Grafik

Qt verfügt über mehrere verschiedene APIs zum Zeichnen von 2D-Grafikprimitiven. Einen Überblick über die Möglichkeiten finden Sie auf der separaten Seite zu 2D-Grafik in Qt.

3D-Grafik mit Qt Quick 3D

Qt Quick 3D ist ein Add-on, das eine High-Level-API zum Erstellen von 3D-Inhalten und 3D-Benutzeroberflächen auf Basis von Qt Quick bereitstellt. Es erweitert den „Qt Quick “-Szenenbaum, mit dem Sie 3D-Inhalte in 2D- Qt Quick -Anwendungen implementieren können.

Qt-6-Benchmark-Demo, in der eine Qt Quick 3D-Szene ausgeführt wird

Shader-Effekte

Das Qt- Shader Tools bietet ein Tool namens QSB, mit dem Vertex- und Fragment-Shader in ein Paket für Qt Quick -Schnittstellen übersetzt werden können. Insbesondere können der QML-Typ „ ShaderEffect “ und die Unterklassen von „ QSGMaterial “ die Ausgabe von QSB nutzen. Qt Quick 3D verfügt über ein eigenes Framework zum Importieren von Shadern in 3D-Szenen.

Die folgende Liste enthält Informationen zu Shader-Effekten.

Qt Quick 3D-Szene zur Veranschaulichung von Shader-Effekten

High-Level-Grafik mit Qt GUI

Qt GUI bietet ein hochentwickeltes Fenster-, Zeichen- und Typografiesystem. „ QPainter “ stellt eine API zum Zeichnen von Vektorgrafiken, Text und Bildern auf verschiedenen Oberflächen oder „ QPaintDevice “-Instanzen bereit, wie beispielsweise „ QImage “, „ QOpenGLPaintDevice “, „ QWidget “ und „ QPrinter “. Für Benutzeroberflächen nach dem „ Qt Widgets “-Prinzip verwendet Qt einen Software-Renderer.

Die folgende Liste enthält Informationen zu den übergeordneten Zeichen-APIs der Qt GUI.

Low-Level-Grafik mit Qt GUI

Qt GUI bietet plattformübergreifende Funktionen zur Verwaltung von OpenGL-Kontexten und Vulkan-Instanzen. Anwendungen, die das Rendering direkt mit OpenGL, OpenGL ES oder Vulkan durchführen, können QOpenGLContext, QOpenGLFunctions, QVulkanInstance, QVulkanFunctions und QVulkanDeviceFunctions nutzen, um Kontexte und Instanzen zu verwalten und auf portable Weise Zugriff auf die OpenGL- und Vulkan-API-Funktionen zu erhalten.

Qt GUI bietet zudem die API-Familie „Qt Rendering Hardware Interface“ (RHI) an, wie beispielsweise QRhi und QShader, für Anwendungen, die das Rendering mithilfe der portablen, plattformübergreifenden 3D-Rendering-Infrastruktur durchführen möchten, die Qt selbst zur Implementierung des Szenengraphen Qt Quick und der Rendering-Engine Qt Quick 3D verwendet. Diese Klassen werden vorerst als „halböffentliche“ APIs mit einer eingeschränkten Kompatibilitätsgarantie angeboten, ähnlich wie die Klassen der Qt-Plattformabstraktion. Die „ QRhi “-Klassen verfügen jedoch über eine vollständige Dokumentation. Weitere Informationen finden Sie in der Klasse „ QRhi “.

Das Qt GUI Modul allein ermöglicht es, einen „ QWindow “ oder einen Offscreen-Puffer, wie beispielsweise einen „ QRhiTexture “, mit dem auf „ QRhi “ basierenden Rendering anzusteuern. Bei Benutzeroberflächen, die auf „ QWidget “ oder QML (Qt Quick) basieren, ist die Arbeit mit einem „ QWindow “, der von einer nativen Plattform unterstützt wird, nicht immer der bequemste Weg. Aus diesem Grund bietet das Qt Widgets Modul „ QRhiWidget “ anbietet, während „ Qt Quick “ „ QQuickRhiItem “ bereitstellt. Diese Basisklassen ermöglichen die bequeme Erstellung von Unterklassen von „ QWidget “ oder „ QQuickItem “, deren Instanzen eine portable, auf „ QRhi “ basierende Darstellung in eine Textur ausführen, die dann automatisch mit den Widgets oder der „ Qt Quick “-Szene zusammengesetzt wird.

Qt OpenGL Modul

Das Qt OpenGL Modul ist für Anwendungen gedacht, die OpenGL-Zugriff benötigen. Dieses Modul dient der Aufrechterhaltung der Kompatibilität mit Qt-5-Anwendungen sowie mit „ Qt GUI “. Für Benutzeroberflächen, die „ QWidget “ verwenden, ist „ QOpenGLWidget “ ein Widget, mit dem OpenGL-Szenen hinzugefügt werden können.

Drucken

Qt unterstützt sowohl das direkte Drucken auf physischen Druckern – lokal oder im Netzwerk – als auch die Erstellung von PDF-Dateien. Wie das Drucken mit Qt funktioniert, wird ausführlich auf der Qt Print Support Seite beschrieben.

Bilder

Qt unterstützt das bequeme Lesen, Schreiben und Bearbeiten von Bildern über die Klasse „ QImage “. Für eine feinere Steuerung beim Laden oder Speichern von Bildern können Sie zudem die Klassen „ QImageReader “ bzw. „ QImageWriter “ verwenden. Um Unterstützung für weitere Bildformate hinzuzufügen, die über die von Qt bereitgestellten hinausgehen, können Sie Bildformat-Plugins mithilfe von „ QImageIOHandler “ und „ QImageIOPlugin “ erstellen.

Weitere Informationen finden Sie auf der Seite „Lesen und Schreiben von Bilddateien “.

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.