Auf dieser Seite

Stile und stilbewusste Widgets

Stile (Klassen, die von ` QStyle` erben) übernehmen das Zeichnen für Widgets und kapseln das Erscheinungsbild einer grafischen Benutzeroberfläche. ` QStyle ` ist eine abstrakte Basisklasse. Die in Qt integrierten Widgets nutzen sie für fast alle ihre Zeichnungsvorgänge, sodass sie genau wie die entsprechenden nativen Widgets aussehen.

Qt enthält eine Auswahl an integrierten Stilen. Die Stile „ windows “ und „ fusion “ sind Teil des Moduls „ Qt Widgets “. Die Plattformstile, wie beispielsweise „ windows11 “ unter Windows und „ macos “ unter macOS, sind Plugins, die nur auf der jeweiligen Plattform verfügbar sind. „ QStyleFactory “ listet die zur Laufzeit verfügbaren Stile auf und erstellt sie anhand ihres Namens. „ QApplication::setStyle()“ legt einen Stil als Anwendungsstil fest, und Benutzer können einen Stil mit der Befehlszeilenoption „ -style “ auswählen.

Eine „ QStyle “-Implementierung ist die Methode, um einer Produktionsanwendung ein individuelles Erscheinungsbild zu verleihen. StyleKit stellt eine solche Implementierung bereit ( QStyleKitStyle), die eine QML-Beschreibung des Designs ausliest. Informationen dazu, wann ein Stil, StyleKit oder ein Stylesheet verwendet werden sollte, finden Sie unter „Styling Approaches“ unter Qt Widgets.

Anpassen eines Stils

Um ausgewählte Aspekte eines bestehenden Stils zu ändern, erben Sie von „ QProxyStyle “ und implementieren Sie die virtuellen Funktionen neu, die die Elemente zeichnen oder vermessen, die Sie ändern möchten. Ein Proxy-Stil umschließt einen anderen Stil und leitet alles, was Sie nicht neu implementieren, an diesen weiter.

Sie können den Basisstil explizit benennen oder ihn unbestimmt lassen. Ein expliziter Basisstil gibt Ihnen volle Kontrolle und eignet sich für Anpassungen, die vom Verhalten eines bestimmten Stils abhängen. Ohne Basisstil umschließt der Proxy-Stil den Anwendungsstil, sodass Ihre Anpassung zusätzlich zu dem gilt, was die Plattform bereitstellt.

The QStyle class documentation zeigt einen Proxy-Stil, der die Pfeile eines Drehfelds ersetzt.

Implementierung eines Stils

QCommonStyle bietet eine praktische Grundlage für vollständige Stilimplementierungen. Er implementiert das Verhalten, das alle Qt-Stile gemeinsam haben, wie beispielsweise das Layout der Unterelemente und die Größenberechnungen, und überlässt das Zeichnen Ihnen. Erben Sie von ` QCommonStyle ` und implementieren Sie die Zeichenfunktionen neu, zusammen mit den Pixelmaßen, den Rechtecken der Unterelemente und den Stilhinweisen, die von den üblichen Standardwerten abweichen. Die integrierten Stile von Qt XML sind nicht Teil der öffentlichen API und können nicht als Basisklassen dienen; umschließen Sie sie stattdessen mit ` QProxyStyle `.

Die Implementierung eines vollständigen Stils ist eine komplexe Aufgabe. Auf den folgenden Seiten wird beschrieben, wie die Stil-API funktioniert, es wird nachverfolgt, wie ein Widget vom „paint“-Ereignis bis zum Stil gezeichnet wird, und es werden die Elemente, Zustände und Optionen aufgelistet, die jedes Widget verwendet:

Die Elemente, die die Widgets zeichnen, sind in jedem Stil identisch, sodass Sie die Referenz auch verwenden können, wenn Sie ein stilbewusstes Widget oder einen Delegaten schreiben.

Klassen für die Widget-Gestaltung

Verwenden Sie diese Klassen, um das Erscheinungsbild einer Anwendung anzupassen.

QColor

Farben basierend auf RGB-, HSV- oder CMYK-Werten

QColorSpace

Farbraumabstraktion

QColorTransform

Umwandlung zwischen Farbräumen

QCommonStyle

Kapseln das einheitliche Erscheinungsbild einer grafischen Benutzeroberfläche

QCursor

Mauszeiger mit beliebiger Form

QFont

Legt eine Abfrage für eine Schriftart fest, die zum Zeichnen von Text verwendet wird

QFontDatabase

Informationen zu den im zugrunde liegenden Fenstersystem verfügbaren Schriftarten

QFontInfo

Allgemeine Informationen zu Schriftarten

QGraphicsAnchor

Stellt eine Verankerung zwischen zwei Elementen in einem `QGraphicsAnchorLayout` dar

QGraphicsAnchorLayout

Layout, in dem Widgets in der Graphics-Ansicht miteinander verankert werden können

QPalette

Enthält Farbgruppen für jeden Widget-Zustand

QStyle

Abstrakte Basisklasse, die das Erscheinungsbild einer GUI kapselt

QStyleFactory

Erstellt QStyle-Objekte

QStyleHintReturn

Stilhinweise, die mehr als nur grundlegende Datentypen zurückgeben

QStyleHintReturnMask

Stilhinweise, die eine `QRegion` zurückgeben

QStyleHintReturnVariant

Stilhinweise, die ein `QVariant` zurückgeben

QStyleKitStyle

Wendet einen Qt Labs StyleKit-Stil an auf Qt Widgets

QStyleOption

Speichert die von QStyle-Funktionen verwendeten Parameter

QStylePainter

Hilfsklasse zum Zeichnen von QStyle-Elementen innerhalb eines Widgets

Siehe auch „ QStyle“ , „ QProxyStyle “, „ QCommonStyle “, „ QStylePainter “, „ QStyleOption “ und „Styling-Ansätze für Qt Widgets “.

© 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.