Auf dieser Seite

QSGTextNode Class

Die Klasse „QSGTextNode“ dient zum Zeichnen von Textlayouts und Textdokumenten im Szenengraphen von „ Qt Quick “. Mehr...

Header: #include <QSGTextNode>
CMake: find_package(Qt6 REQUIRED COMPONENTS Quick)
target_link_libraries(mytarget PRIVATE Qt6::Quick)
qmake: QT += quick
Seit: Qt 6.7
Erbt von: 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

Private Funktionen

virtual void doAddTextDocument(QPointF position, QTextDocument *document, int selectionStart, int selectionCount) = 0
virtual void doAddTextLayout(QPointF position, QTextLayout *layout, int selectionStart, int selectionCount, int lineStart, int lineCount) = 0

Ausführliche Beschreibung

QSGTextNode kann beim Erstellen benutzerdefinierter „ Qt Quick “-Elemente nützlich sein, die Text erfordern. 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 Möglichkeiten, Text zum QSGTextNode hinzuzufügen. Der Text muss bereits layoutet sein.

Hinweis: Eigenschaften müssen vor dem Aufruf von ` addTextLayout()` oder ` addTextDocument()` festgelegt werden, damit sie wirksam werden.

Hinweis: Die Freigabe des `QSGTextNode` muss sorgfältig verwaltet werden. Da er insbesondere auf Grafikressourcen verweist, muss er gelöscht werden, wenn der Szenengraph von ` Qt Quick ` ungültig gemacht wird. Ist der Knoten Teil des Graphen und ist das Flag ` OwnedByParent ` gesetzt (was die Standardeinstellung ist), geschieht dies automatisch. Ist das Flag „ OwnedByParent “ jedoch deaktiviert und wird der Knoten manuell entsorgt, muss darauf geachtet werden, dies zu tun, wenn der Szenengraph ungültig gemacht wird. Dies kann durch Anbindung an das Signal „ QQuickWindow::sceneGraphInvalidated()“ oder durch Implementierung eines Slots in der Unterklasse von „ QQuickItem “ mit dem Namen „ invalidateSceneGraph() “ erfolgen. Weitere Details finden Sie in der Dokumentation zu „ QQuickItem “.

Dokumentation zu Mitgliedstypen

enum QSGTextNode::RenderType

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

KonstanteWertBeschreibung
QSGTextNode::QtRendering0Der Text wird unter Verwendung eines skalierbaren Abstandsfelds für jede Glyphe gerendert.
QSGTextNode::NativeRendering1Der Text wird mithilfe einer plattformspezifischen Technik gerendert.
QSGTextNode::CurveRendering2Der Text wird mithilfe eines Kurvenrasterisierers gerendert, der direkt auf der Grafikhardware ausgeführt wird.

Wählen Sie „ NativeRendering “, wenn Sie möchten, dass der Text auf der Zielplattform wie nativ dargestellt wird, und keine erweiterten Funktionen wie die Transformation des Textes benötigen. Die Verwendung solcher Funktionen in Kombination mit dem Rendering-Typ „NativeRendering“ führt zu schlechten und manchmal verpixelten Ergebnissen.

Sowohl „ Text.QtRendering “ als auch „ Text.CurveRendering “ sind hardwarebeschleunigte Verfahren. „ QtRendering “ ist das schnellere der beiden, beansprucht jedoch mehr Speicher und weist bei großen Größen Darstellungsartefakte auf. „ 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 bei der Textdarstellung angewendet werden können.

KonstanteWertBeschreibung
QSGTextNode::Normal0Der Text wird ohne angewandten Stil gezeichnet.
QSGTextNode::Outline1Der Text wird mit einem Umriss gezeichnet.
QSGTextNode::Raised2Der Text wird erhaben dargestellt.
QSGTextNode::Sunken3Der Text wird vertieft dargestellt.

Siehe auch setTextStyle() und setStyleColor().

Dokumentation der Member-Funktionen

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

Fügt den Inhalt von ` document ` zum Textknoten unter ` position` hinzu. Ist ` selectionStart ` >= 0, so markiert dies das erste Zeichen in einem ausgewählten Bereich mit der Anzahl an Zeichen ` selectionCount `. Die Auswahl wird als Hintergrundfüllung mit der Funktion ` selectionColor()` dargestellt, und der ausgewählte Text wird mit der Funktion ` selectionTextColor()` gerendert.

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

Siehe auch clear().

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 zum Textknoten unter position hinzu. Ist selectionStart >= 0, markiert dies das erste Zeichen in einem ausgewählten Bereich mit der Zeichenanzahl selectionCount. Die Auswahl wird als Hintergrundfüllung mit der Funktion selectionColor() dargestellt, und der ausgewählte Text wird mit der Funktion selectionTextColor() gerendert.

Der Einfachheit halber können „ lineStart “ und „ lineCount “ verwendet werden, um den Bereich der „ QTextLine “-Objekte auszuwählen, die aus dem Layout einbezogen werden sollen. Dies kann beispielsweise beim Erstellen von gekürzten Layouts nützlich sein. Ist „ lineCount “ < 0, dann umfasst der Knoten die Zeilen von „ lineStart “ bis zum Ende des Layouts.

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

Siehe auch clear().

[pure virtual] void QSGTextNode::clear()

Löscht den Inhalt des Knotens und entfernt dabei Knoten sowie andere Daten, die die ihm hinzugefügten Layouts und Dokumente darstellen.

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 private] void QSGTextNode::doAddTextDocument(QPointF position, QTextDocument *document, int selectionStart, int selectionCount)

Virtuelle Funktion, die von ` addTextDocument()` aufgerufen wird und den Inhalt von ` document ` in Szenengraph-Knoten umwandelt und diese dem aktuellen Knoten unter ` position` hinzufügt.

Ist selectionStart >= 0, so markiert dies das erste Zeichen in einem ausgewählten Bereich von selectionCount number of characters. Die Auswahl wird als Hintergrundfüllung mit der Funktion selectionColor() dargestellt, und der ausgewählte Text wird mit der Funktion selectionTextColor() gerendert.

Siehe auch „ clear()“ und „ addTextDocument()“.

[pure virtual private] void QSGTextNode::doAddTextLayout(QPointF position, QTextLayout *layout, int selectionStart, int selectionCount, int lineStart, int lineCount)

Virtuelle Funktion, die von ` addTextLayout()` aufgerufen wird und den Inhalt von ` layout ` in Szenengraph-Knoten umwandelt und diese dem aktuellen Knoten unter ` position` hinzufügt.

Ist selectionStart >= 0, so markiert dies das erste Zeichen in einem ausgewählten Bereich von selectionCount Anzahl von Zeichen. Die Auswahl wird als Hintergrundfüllung mit selectionColor() dargestellt, und der ausgewählte Text wird in selectionTextColor() gerendert.

Der Einfachheit halber können mit den Funktionen „ lineStart “ und „ lineCount “ der Bereich von „ QTextLine “-Objekten ausgewählt werden, der aus dem Layout einbezogen werden soll. Dies kann beispielsweise beim Erstellen von verkürzten Layouts nützlich sein. Ist „ lineCount “ < 0, umfasst der Knoten die Zeilen von „ lineStart “ bis zum Ende des Layouts.

Siehe auch clear() und addTextLayout().

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

Gibt den Skalierungsmodus zurück, der beim Skalieren von Bildern verwendet wird, die Teil des angezeigten Textes sind.

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. Weitere Informationen finden Sie unter setRenderTypeQuality().

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 ausgewählten Textes 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 werden soll.

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

Siehe auch color().

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

Legt den Skalierungsmodus fest, der beim Skalieren von Bildern verwendet wird, die Teil des angezeigten Textes sind, auf „ filtering “. Um Bilder stufenlos zu skalieren, verwenden Sie hier „ QSGTexture::Linear “.

Die Standardeinstellung ist „ QSGTexture::Nearest “.

Siehe auch „ filtering()“.

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

Legt die Farbe von Hyperlinks zu linkColor im Text fest.

Die Standardfarbe ist Blau: QColor(0, 0, 255).

Siehe auch linkColor().

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

Legt den Typ des verwendeten Glyphenknotens auf „ renderType “ fest.

Der Standardwert ist „ QtRendering “.

Siehe auch „ renderType()“.

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

Sofern der verwendete „ renderType()“ dies unterstützt, legen Sie die Qualität fest, die beim Rendern des Textes verwendet werden soll. Sofern dies unterstützt wird, kann damit ein Kompromiss zwischen visueller Wiedergabetreue und Ausführungsgeschwindigkeit oder Speicherbedarf eingegangen werden.

Ist der Wert „ renderTypeQuality “ kleiner als 0, wird die Standardqualität verwendet.

renderTypeQuality kann eine beliebige ganze Zahl sein, allerdings können bei extremen Werten Einschränkungen durch die zugrunde liegende Grafikhardware auftreten. Das Textelement „ Qt Quick “ arbeitet mit den folgenden vordefinierten Werten:

KonstanteBeschreibung
DefaultRenderTypeQuality-1 (Standard)
LowRenderTypeQuality26
NormalRenderTypeQuality52
HighRenderTypeQuality104
VeryHighRenderTypeQuality208

Dieser Wert wird derzeit nur vom Render-Typ „ QtRendering “ berücksichtigt. Durch die Einstellung wird die Auflösung der zur Darstellung der Glyphen verwendeten Entfernungsfelder geändert. Eine Einstellung über dem Normalwert führt zu einem höheren Speicherverbrauch, reduziert jedoch Filterartefakte bei sehr großem Text.

Der Standardwert ist -1.

Siehe auch „ renderTypeQuality()“.

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

Legt die Farbe des Auswahlhintergrunds auf color fest, sobald ein beliebiger Teil des Textes markiert ist.

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

Siehe auch selectionColor().

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

Legt die Farbe des ausgewählten Textes auf selectionTextColor fest, sobald ein beliebiger Teil des Textes als ausgewählt markiert ist.

Die Standardeinstellung 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 werden soll.

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

Siehe auch „ styleColor()“ und „ setTextStyle()“.

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

Legt den Stil des gerenderten Textes auf „ textStyle “ fest. Die Standardeinstellung ist „ Normal “.

Siehe auch „ textStyle()“ und „ setStyleColor()“.

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

Legt den Begrenzungsrahmen des Ansichtsfensters, in dem der Text angezeigt wird, auf ` viewport` fest. Durch die Angabe dieser Information kann der „ QSGTextNode “ optimieren, welche Teile des Textlayouts oder des Dokuments in den Szenengraphen aufgenommen werden.

Der Standardwert ist ein standardmäßig erstelltes ` QRectF`. Für diesen Ansichtsbereich werden alle Inhalte in den Graphen aufgenommen.

Siehe auch ` viewport()`.

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

Gibt die Stilfarbe zurück, die 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 den aktuell für dieses QSGTextNode festgelegten Ansichtsbereich zurück.

Siehe auch setViewport().

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