QSGTextNode Class

Die Klasse QSGTextNode ist eine Klasse zum Zeichnen von Textlayouts und Textdokumenten im Qt Quick Szenegraph. Mehr...

Kopfzeile: #include <QSGTextNode>
CMake: find_package(Qt6 REQUIRED COMPONENTS Quick)
target_link_libraries(mytarget PRIVATE Qt6::Quick)
qmake: QT += quick
Seit: Qt 6.7
Vererbt: QSGTransformNode

Öffentliche Typen

enum RenderType { QtRendering, NativeRendering, CurveRendering }
enum TextStyle { Normal, Outline, Raised, Sunken }

Öffentliche Funktionen

void addTextDocument(QPointF position, QTextDocument *document, int selectionStart = -1, int selectionCount = -1)
void addTextLayout(QPointF position, QTextLayout *layout, int selectionStart = -1, int selectionCount = -1, int lineStart = 0, int lineCount = -1)
virtual void clear() = 0
virtual QColor color() const = 0
virtual QSGTexture::Filtering filtering() const = 0
virtual QColor linkColor() const = 0
virtual QSGTextNode::RenderType renderType() const = 0
virtual int renderTypeQuality() const = 0
virtual QColor selectionColor() const = 0
virtual QColor selectionTextColor() const = 0
virtual void setColor(QColor color) = 0
virtual void setFiltering(QSGTexture::Filtering filtering) = 0
virtual void setLinkColor(QColor linkColor) = 0
virtual void setRenderType(QSGTextNode::RenderType renderType) = 0
virtual void setRenderTypeQuality(int renderTypeQuality) = 0
virtual void setSelectionColor(QColor color) = 0
virtual void setSelectionTextColor(QColor selectionTextColor) = 0
virtual void setStyleColor(QColor styleColor) = 0
virtual void setTextStyle(QSGTextNode::TextStyle textStyle) = 0
virtual void setViewport(const QRectF &viewport) = 0
virtual QColor styleColor() const = 0
virtual QSGTextNode::TextStyle textStyle() = 0
virtual QRectF viewport() const = 0

Detaillierte Beschreibung

QSGTextNode kann für die Erstellung von benutzerdefinierten Qt Quick Elementen, die Text benötigen, nützlich sein. Es wird in Qt Quick von den Elementen Text, TextEdit und TextInput verwendet.

Sie können QSGTextNode-Objekte mit QQuickWindow::createTextNode() erstellen. Die Funktionen addTextLayout() und addTextDocument() bieten die Möglichkeit, Text zu QSGTextNode hinzuzufügen. Der Text muss bereits angelegt sein.

Hinweis: Eigenschaften müssen vor dem Aufruf von addTextLayout() oder addTextDocument() gesetzt werden, um eine Wirkung zu erzielen.

Hinweis: Die Zerstörung von QSGTextNode ist mit Vorsicht zu genießen. Da er insbesondere auf Grafikressourcen verweist, muss er gelöscht werden, wenn der Qt Quick Szenegraph ungültig wird. Wenn der Knoten Teil des Graphen ist und das OwnedByParent Flag gesetzt ist (was der Standard ist), geschieht dies automatisch. Wenn jedoch das Kennzeichen OwnedByParent gelöscht ist und der Knoten manuell entsorgt wird, muss darauf geachtet werden, dass dies bei der Invalidierung des Szenegraphen geschieht. Dies kann durch eine Verbindung mit dem Signal QQuickWindow::sceneGraphInvalidated() oder durch die Implementierung eines Slots in der Unterklasse QQuickItem mit dem Namen invalidateSceneGraph() erfolgen. Siehe auch die Dokumentation von QQuickItem für weitere Details.

Dokumentation der Mitgliedstypen

enum QSGTextNode::RenderType

Dieser Enum-Typ beschreibt den Typ des Glyphenknotens, der für die Darstellung des Textes verwendet wird.

KonstanteWertBeschreibung
QSGTextNode::QtRendering0Der Text wird mit einem skalierbaren Abstandsfeld für jede Glyphe gerendert.
QSGTextNode::NativeRendering1Der Text wird mit einer plattformspezifischen Technik gerendert.
QSGTextNode::CurveRendering2Text wird mit einem Kurvenrasterer gerendert, der direkt auf der Grafikhardware läuft.

Wählen Sie NativeRendering, wenn Sie es vorziehen, dass der Text auf der Zielplattform nativ aussieht und Sie keine erweiterten Funktionen wie die Transformation des Textes benötigen. Die Verwendung solcher Funktionen in Kombination mit dem Rendertyp NativeRendering führt zu schlechten und manchmal pixeligen Ergebnissen.

Sowohl Text.QtRendering als auch Text.CurveRendering sind hardwarebeschleunigte Techniken. QtRendering ist die schnellere der beiden Techniken, verbraucht aber mehr Speicher und führt bei großen Größen zu Rendering-Artefakten. CurveRendering sollte als Alternative in Betracht gezogen werden, wenn QtRendering keine guten visuellen Ergebnisse liefert oder wenn die Reduzierung des Grafikspeicherverbrauchs Priorität hat.

Siehe auch setRenderType() und setRenderTypeQuality().

enum QSGTextNode::TextStyle

Dieser Enum-Typ beschreibt Stile, die auf die Textdarstellung angewendet werden können.

KonstanteWertBeschreibung
QSGTextNode::Normal0Der Text wird ohne jeden Stil gezeichnet.
QSGTextNode::Outline1Der Text wird mit einer Kontur gezeichnet.
QSGTextNode::Raised2Der Text wird erhaben gezeichnet.
QSGTextNode::Sunken3Der Text wird versenkt gezeichnet.

Siehe auch setTextStyle() und setStyleColor().

Dokumentation der Mitgliedsfunktionen

void QSGTextNode::addTextDocument(QPointF position, QTextDocument *document, int selectionStart = -1, int selectionCount = -1)

Fügt den Inhalt von document an den Textknoten position an. Wenn selectionStart >= 0 ist, wird damit das erste Zeichen in einem ausgewählten Bereich von selectionCount Anzahl der Zeichen markiert. Die Auswahl wird als Hintergrundfüllung mit selectionColor() dargestellt und der ausgewählte Text wird in selectionTextColor() wiedergegeben.

Diese Funktion leitet ihre Argumente an die virtuelle Funktion doAddTextDocument() weiter.

Siehe auch clear() und doAddTextDocument().

void QSGTextNode::addTextLayout(QPointF position, QTextLayout *layout, int selectionStart = -1, int selectionCount = -1, int lineStart = 0, int lineCount = -1)

Fügt den Inhalt von layout an den Textknoten position an. Wenn selectionStart >= 0 ist, wird damit das erste Zeichen in einem ausgewählten Bereich von selectionCount Anzahl der Zeichen markiert. Die Auswahl wird als Hintergrundfüllung mit selectionColor() dargestellt und der ausgewählte Text wird in selectionTextColor() wiedergegeben.

Der Einfachheit halber können lineStart und lineCount verwendet werden, um den Bereich der QTextLine Objekte auszuwählen, die in das Layout aufgenommen werden sollen. Dies kann z. B. bei der Erstellung von elidierten Layouts nützlich sein. Wenn lineCount < 0 ist, dann schließt der Knoten die Zeilen von lineStart bis zum Ende des Layouts ein.

Diese Funktion leitet ihre Argumente an die virtuelle Funktion doAddTextLayout() weiter.

Siehe auch clear() und doAddTextLayout().

[pure virtual] void QSGTextNode::clear()

Löscht den Inhalt des Knotens, wobei Knoten und andere Daten, die die ihm hinzugefügten Layouts und Dokumente darstellen, gelöscht werden.

Siehe auch addTextLayout() und addTextDocument().

[pure virtual] QColor QSGTextNode::color() const

Gibt die Hauptfarbe zurück, die beim Rendern des Textes verwendet wird.

Siehe auch setColor().

[pure virtual] QSGTexture::Filtering QSGTextNode::filtering() const

Gibt den Abtastmodus zurück, der bei der Skalierung von Bildern, die Teil des angezeigten Textes sind, verwendet wird.

Siehe auch setFiltering().

[pure virtual] QColor QSGTextNode::linkColor() const

Gibt die Farbe der Hyperlinks im Text zurück.

Siehe auch setLinkColor().

[pure virtual] QSGTextNode::RenderType QSGTextNode::renderType() const

Gibt den Typ des Glyphenknotens zurück, der für die Darstellung des Textes verwendet wird.

Siehe auch setRenderType().

[pure virtual] int QSGTextNode::renderTypeQuality() const

Gibt die Qualität des Rendertyps des Knotens zurück. Siehe setRenderTypeQuality() für Details.

Siehe auch setRenderTypeQuality().

[pure virtual] QColor QSGTextNode::selectionColor() const

Gibt die Farbe des Auswahlhintergrunds zurück, wenn ein beliebiger Teil des Textes als ausgewählt markiert ist.

Siehe auch setSelectionColor().

[pure virtual] QColor QSGTextNode::selectionTextColor() const

Gibt die Farbe des Auswahltextes zurück, wenn ein beliebiger Teil des Textes als ausgewählt markiert ist.

Siehe auch setSelectionTextColor().

[pure virtual] void QSGTextNode::setColor(QColor color)

Legt die Hauptfarbe fest, die beim Rendern des Textes auf color verwendet wird.

Die Vorgabe ist Schwarz: QColor(0, 0, 0).

Siehe auch color().

[pure virtual] void QSGTextNode::setFiltering(QSGTexture::Filtering filtering)

Legt den Abtastmodus fest, der verwendet wird, wenn Bilder, die Teil des angezeigten Textes sind, auf filtering skaliert werden. Für gleichmäßig skalierte Bilder verwenden Sie hier QSGTexture::Linear.

Die Vorgabe ist QSGTexture::Nearest.

Siehe auch filtering().

[pure virtual] void QSGTextNode::setLinkColor(QColor linkColor)

Legt die Farbe von oder Hyperlinks zu linkColor im Text fest.

Die Standardeinstellung ist blau: QColor(0, 0, 255).

Siehe auch linkColor().

[pure virtual] void QSGTextNode::setRenderType(QSGTextNode::RenderType renderType)

Setzt den Typ des verwendeten Glyphknotens auf renderType.

Die Vorgabe ist QtRendering.

Siehe auch renderType().

[pure virtual] void QSGTextNode::setRenderTypeQuality(int renderTypeQuality)

Wenn das verwendete renderType() dies unterstützt, legen Sie die Qualität fest, die beim Rendern des Textes verwendet werden soll. Wenn dies unterstützt wird, kann dies verwendet werden, um visuelle Wiedergabetreue gegen Ausführungsgeschwindigkeit oder Speicher zu tauschen.

Wenn renderTypeQuality < 0 ist, wird die Standardqualität verwendet.

renderTypeQuality kann eine beliebige ganze Zahl sein, obwohl es bei extremen Werten zu Einschränkungen durch die zugrunde liegende Grafikhardware kommen kann. Das Element Qt Quick Text arbeitet mit den folgenden vordefinierten Werten:

KonstanteBeschreibung
DefaultRenderTypeQuality-1 (Voreinstellung)
LowRenderTypeQuality26
NormalRenderTypeQuality52
HighRenderTypeQuality104
VeryHighRenderTypeQuality208

Dieser Wert wird derzeit nur vom Rendertyp QtRendering beachtet. Seine Einstellung ändert die Auflösung der Abstandsfelder, die zur Darstellung der Glyphen verwendet werden. Eine Einstellung über dem Normalwert führt zu einem höheren Speicherverbrauch, verringert aber Filterungsartefakte bei sehr großem Text.

Die Voreinstellung ist -1.

Siehe auch renderTypeQuality().

[pure virtual] void QSGTextNode::setSelectionColor(QColor color)

Legt die Farbe des Auswahlhintergrunds auf color fest, wenn ein Teil des Textes als ausgewählt markiert ist.

Die Standardeinstellung ist dunkelblau: QColor(0, 0, 128).

Siehe auch selectionColor().

[pure virtual] void QSGTextNode::setSelectionTextColor(QColor selectionTextColor)

Legt die Farbe des Auswahltextes auf selectionTextColor fest, wenn ein Teil des Textes als ausgewählt markiert ist.

Der Standardwert ist weiß: QColor(255, 255, 255).

Siehe auch selectionTextColor().

[pure virtual] void QSGTextNode::setStyleColor(QColor styleColor)

Legt die Stilfarbe fest, die beim Rendern des Textes auf styleColor verwendet wird.

Die Standardeinstellung ist Schwarz: QColor(0, 0, 0).

Siehe auch styleColor() und setTextStyle().

[pure virtual] void QSGTextNode::setTextStyle(QSGTextNode::TextStyle textStyle)

Setzt den Stil des gerenderten Textes auf textStyle. Die Vorgabe ist Normal.

Siehe auch textStyle() und setStyleColor().

[pure virtual] void QSGTextNode::setViewport(const QRectF &viewport)

Legt das Begrenzungsrechteck des Ansichtsfensters, in dem der Text angezeigt wird, auf viewport fest. Die Bereitstellung dieser Informationen ermöglicht es QSGTextNode zu optimieren, welche Teile des Textlayouts oder des Dokuments in den Szenegraphen aufgenommen werden.

Die Voreinstellung ist ein standardmäßig konstruiertes QRectF. Für dieses Ansichtsfenster werden alle Inhalte in den Graphen aufgenommen.

Siehe auch viewport().

[pure virtual] QColor QSGTextNode::styleColor() const

Gibt die Farbe des Stils zurück, der beim Rendern des Textes verwendet wird.

Siehe auch setStyleColor() und textStyle().

[pure virtual] QSGTextNode::TextStyle QSGTextNode::textStyle()

Gibt den Stil des gerenderten Textes zurück.

Siehe auch setTextStyle() und styleColor().

[pure virtual] QRectF QSGTextNode::viewport() const

Gibt das aktuelle Ansichtsfenster für dieses QSGTextNode zurück.

Siehe auch setViewport().

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