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