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.
| Konstante | Wert | Beschreibung |
|---|---|---|
QSGTextNode::QtRendering | 0 | Der Text wird unter Verwendung eines skalierbaren Abstandsfelds für jede Glyphe gerendert. |
QSGTextNode::NativeRendering | 1 | Der Text wird mithilfe einer plattformspezifischen Technik gerendert. |
QSGTextNode::CurveRendering | 2 | Der 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.
| Konstante | Wert | Beschreibung |
|---|---|---|
QSGTextNode::Normal | 0 | Der Text wird ohne angewandten Stil gezeichnet. |
QSGTextNode::Outline | 1 | Der Text wird mit einem Umriss gezeichnet. |
QSGTextNode::Raised | 2 | Der Text wird erhaben dargestellt. |
QSGTextNode::Sunken | 3 | Der 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:
| Konstante | Beschreibung |
|---|---|
DefaultRenderTypeQuality | -1 (Standard) |
LowRenderTypeQuality | 26 |
NormalRenderTypeQuality | 52 |
HighRenderTypeQuality | 104 |
VeryHighRenderTypeQuality | 208 |
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.