Qt wiki will be updated on October 12th 2023 starting at 11:30 AM (EEST) and the maintenance will last around 2-3 hours. During the maintenance the site will be unavailable.
Dynamic Properties and Stylesheets/de
This article may require cleanup to meet the Qt Wiki's quality standards. Reason: Auto-imported from ExpressionEngine. Please improve this article if you can. Remove the {{cleanup}} tag and add this page to Updated pages list after it's clean. |
Dynamische Properties und Stylesheets
Mit Stylesheets kann das Aussehen einer Applikation geändert werden, ohne das man QStyles beherrschen muss. Sowohl einfache Effekte als auch Komplexe können mit Stylesheets gelöst werden. Aber für echte einzigartige Erfahrungen sind QtQuick und QGraphicsView die besser Alternative.
Bei Stylesheets werden die verschiedenen Einstellungen mittels so genannter Selektoren zugewiesen. Am Beispiel des folgenden Code Ausschnittes bekommen alle QLineEdit elemente eine gelbe Hintergrundfarbe. In diesem Beispiel ist der Selektor das Wort QLineEdit.
QLineEdit
{
background: yellow;
}
Es gibt viele Selektoren, basierend auf Objektnamen, Teil Elementen, Pseudo Stati und vielem mehr. Diese können benutzt werden um das User Interfaces zu modifizieren und auch um alle QPushButton objkete mit dem Namen okButton mit grünem Text darzustellen.
Für dynamische änderungen des User Interfaces kann auch der Selektor fürProperties verwendet werden. Dynamische Properties wurden in Qt 4.2 eingeführt un erlauben es, Properties, die zum Kompilierzeitpunkt nicht exitieren, zu QObject elementen hinzuzufügen, z.B. wenn man ein Property urgent auf true setzt, wird das Property verwendet, auch wenn die Klasse kein Q_PROPERTY Makro für das Property urgent beinhaltet.
Durch Verwendung eines Selektors mit dynamischen Properties, z.B. urgent, wird es möglich, Bereiche des User Interfaces dynamisch hervorzuhenben. Das folgende Stylesheet hebt alle QLineEdits mit dem Property urgent auf true mit rotem Text auf gelbem Hinterrund hervor.
QLineEdit
{
background: yellow;
}
[urgent=true]
{
color: red;
}
Dieses ist nicht auf QLineEdits limitiert. Jedes widget, das das Property urgent auf true gesetzt bekommt, wird einen roten text haben. Somit kann jedes Stylesheet konforme Widget mit diesem simplen Trick einen roten Text bekommen.