Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
Loading...
Searching...
No Matches
QSGTextNode Class Referenceabstract

The QSGTextNode class is a class for drawing text layouts and text documents in the Qt Quick scene graph. More...

#include <qsgtextnode.h>

+ Inheritance diagram for QSGTextNode:
+ Collaboration diagram for QSGTextNode:

Public Types

enum  TextStyle : quint8 { Normal , Outline , Raised , Sunken }
 This enum type describes styles that can be applied to text rendering. More...
 
enum  RenderType : quint8 { QtRendering , NativeRendering , CurveRendering }
 This enum type describes type of glyph node used for rendering the text. More...
 
- Public Types inherited from QSGNode
enum  NodeType {
  BasicNodeType , GeometryNodeType , TransformNodeType , ClipNodeType ,
  OpacityNodeType , RootNodeType , RenderNodeType
}
 Can be used to figure out the type of node. More...
 
enum  Flag {
  OwnedByParent = 0x0001 , UsePreprocess = 0x0002 , OwnsGeometry = 0x00010000 , OwnsMaterial = 0x00020000 ,
  OwnsOpaqueMaterial = 0x00040000 , IsVisitableNode = 0x01000000
}
 The QSGNode::Flag enum describes flags on the QSGNode. More...
 
enum  DirtyStateBit {
  DirtySubtreeBlocked = 0x0080 , DirtyMatrix = 0x0100 , DirtyNodeAdded = 0x0400 , DirtyNodeRemoved = 0x0800 ,
  DirtyGeometry = 0x1000 , DirtyMaterial = 0x2000 , DirtyOpacity = 0x4000 , DirtyForceUpdate = 0x8000 ,
  DirtyUsePreprocess = UsePreprocess , DirtyPropagationMask
}
 Used in QSGNode::markDirty() to indicate how the scene graph has changed. More...
 

Public Member Functions

 ~QSGTextNode () override
 
virtual void setColor (QColor color)=0
 Sets the main color to use when rendering the text to color.
 
virtual QColor color () const =0
 Returns the main color used when rendering the text.
 
virtual void setTextStyle (TextStyle textStyle)=0
 Sets the style of the rendered text to textStyle.
 
virtual TextStyle textStyle ()=0
 Returns the style of the rendered text.
 
virtual void setStyleColor (QColor styleColor)=0
 Sets the style color to use when rendering the text to styleColor.
 
virtual QColor styleColor () const =0
 Returns the style color used when rendering the text.
 
virtual void setLinkColor (QColor linkColor)=0
 Sets the color of or hyperlinks to linkColor in the text.
 
virtual QColor linkColor () const =0
 Returns the color of hyperlinks in the text.
 
virtual void setSelectionColor (QColor selectionColor)=0
 Sets the color of the selection background to color when any part of the text is marked as selected.
 
virtual QColor selectionColor () const =0
 Returns the color of the selection background when any part of the text is marked as selected.
 
virtual void setSelectionTextColor (QColor selectionTextColor)=0
 Sets the color of the selection text to selectionTextColor when any part of the text is marked as selected.
 
virtual QColor selectionTextColor () const =0
 Returns the color of the selection text when any part of the text is marked as selected.
 
virtual void setRenderType (RenderType renderType)=0
 Sets the type of glyph node in use to renderType.
 
virtual RenderType renderType () const =0
 Returns the type of glyph node used for rendering the text.
 
virtual void setRenderTypeQuality (int renderTypeQuality)=0
 If the \l renderType() in use supports it, set the quality to use when rendering the text.
 
virtual int renderTypeQuality () const =0
 Returns the render type quality of the node.
 
virtual void setFiltering (QSGTexture::Filtering)=0
 Sets the sampling mode used when scaling images that are part of the displayed text to filtering.
 
virtual QSGTexture::Filtering filtering () const =0
 Returns the sampling mode used when scaling images that are part of the displayed text.
 
virtual void clear ()=0
 Clears the contents of the node, deleting nodes and other data that represents the layouts and documents that have been added to it.
 
virtual void setViewport (const QRectF &viewport)=0
 Sets the bounding rect of the viewport where the text is displayed to viewport.
 
virtual QRectF viewport () const =0
 Returns the current viewport set for this QSGTextNode.
 
void addTextLayout (QPointF position, QTextLayout *layout, int selectionStart=-1, int selectionCount=-1, int lineStart=0, int lineCount=-1)
 Adds the contents of layout to the text node at position.
 
void addTextDocument (QPointF position, QTextDocument *document, int selectionStart=-1, int selectionCount=-1)
 Adds the contents of document to the text node at position.
 
- Public Member Functions inherited from QSGTransformNode
 QSGTransformNode ()
 Create a new QSGTransformNode with its matrix set to the identity matrix.
 
 ~QSGTransformNode () override
 Deletes this transform node.
 
void setMatrix (const QMatrix4x4 &matrix)
 Sets this transform node's matrix to matrix.
 
const QMatrix4x4matrix () const
 Returns this transform node's matrix.
 
void setCombinedMatrix (const QMatrix4x4 &matrix)
 Sets the combined matrix of this matrix to transform.
 
const QMatrix4x4combinedMatrix () const
 Set during rendering to the combination of all parent matrices for that rendering pass.
 
- Public Member Functions inherited from QSGNode
 QSGNode ()
 Constructs a new node.
 
virtual ~QSGNode ()
 Destroys the node.
 
QSGNodeparent () const
 Returns the parent node of this node.
 
void removeChildNode (QSGNode *node)
 Removes node from this node's list of children.
 
void removeAllChildNodes ()
 Removes all child nodes from this node's list of children.
 
void prependChildNode (QSGNode *node)
 Prepends node to this node's the list of children.
 
void appendChildNode (QSGNode *node)
 Appends node to this node's list of children.
 
void insertChildNodeBefore (QSGNode *node, QSGNode *before)
 Inserts node to this node's list of children before the node specified with before.
 
void insertChildNodeAfter (QSGNode *node, QSGNode *after)
 Inserts node to this node's list of children after the node specified with after.
 
void reparentChildNodesTo (QSGNode *newParent)
 
int childCount () const
 Returns the number of child nodes.
 
QSGNodechildAtIndex (int i) const
 Returns the child at index i.
 
QSGNodefirstChild () const
 Returns the first child of this node.
 
QSGNodelastChild () const
 Returns the last child of this node.
 
QSGNodenextSibling () const
 Returns the node after this in the parent's list of children.
 
QSGNodepreviousSibling () const
 Returns the node before this in the parent's list of children.
 
NodeType type () const
 Returns the type of this node.
 
QT_DEPRECATED void clearDirty ()
 
void markDirty (DirtyState bits)
 Notifies all connected renderers that the node has dirty bits.
 
QT_DEPRECATED DirtyState dirtyState () const
 
virtual bool isSubtreeBlocked () const
 Returns whether this node and its subtree is available for use.
 
Flags flags () const
 Returns the set of flags for this node.
 
void setFlag (Flag, bool=true)
 Sets the flag f on this node if enabled is true; otherwise clears the flag.
 
void setFlags (Flags, bool=true)
 Sets the flags f on this node if enabled is true; otherwise clears the flags.
 
virtual void preprocess ()
 Override this function to do processing on the node before it is rendered.
 

Private Member Functions

virtual void doAddTextLayout (QPointF position, QTextLayout *layout, int selectionStart, int selectionCount, int lineStart, int lineCount)=0
 Virtual function called by addTextLayout(), which converts the contents of layout to scene graph nodes and adds them to the current node at position.
 
virtual void doAddTextDocument (QPointF position, QTextDocument *document, int selectionStart, int selectionCount)=0
 Virtual function called by addTextDocument(), which converts the contents of document to scene graph nodes and adds them to the current node at position.
 

Additional Inherited Members

- Protected Member Functions inherited from QSGNode
 QSGNode (NodeType type)
 Constructs a new node with the given node type.
 
 QSGNode (QSGNodePrivate &dd, NodeType type)
 Constructs a new node with the given node type.
 
- Protected Attributes inherited from QSGNode
QScopedPointer< QSGNodePrivated_ptr
 

Detailed Description

The QSGTextNode class is a class for drawing text layouts and text documents in the Qt Quick scene graph.

\inmodule QtQuick

Since
6.7

QSGTextNode can be useful for creating custom Qt Quick items that require text. It is used in Qt Quick by the Text, TextEdit and TextInput elements.

You can create QSGTextNode objects using QQuickWindow::createTextNode(). The addTextLayout() and addTextDocument() functions provide ways to add text to the QSGTextNode. The text must already be laid out.

Note
Properties must be set before \l addTextLayout() or \l addTextDocument() are called in order to have an effect.
The destruction of QSGTextNode has to be managed with care. In particular, since it references graphics resources, it must be deleted when the Qt Quick scene graph is invalidated. If the node is part of the graph and has the OwnedByParent flag set (which is the default), this will happen automatically. However, if the OwnedByParent flag is cleared and the node is disposed of manually, care must be taken to do this when the scene graph is invalidated. This can be done by connecting to the \l{QQuickWindow::sceneGraphInvalidated()} signal, or by implementing a slot in the QQuickItem subclass which is named {invalidateSceneGraph()}. See also the documentation of QQuickItem for more details.

Definition at line 13 of file qsgtextnode.h.

Member Enumeration Documentation

◆ RenderType

This enum type describes type of glyph node used for rendering the text.

\value QtRendering Text is rendered using a scalable distance field for each glyph. \value NativeRendering Text is rendered using a platform-specific technique. \value CurveRendering Text is rendered using a curve rasterizer running directly on the graphics hardware.

Select NativeRendering if you prefer text to look native on the target platform and do not require advanced features such as transformation of the text. Using such features in combination with the NativeRendering render type will lend poor and sometimes pixelated results.

Both Text.QtRendering and Text.CurveRendering are hardware-accelerated techniques. QtRendering is the faster of the two, but uses more memory and will exhibit rendering artifacts at large sizes. CurveRendering should be considered as an alternative in cases where QtRendering does not give good visual results or where reducing graphics memory consumption is a priority.

See also
setRenderType(), setRenderTypeQuality()
Enumerator
QtRendering 
NativeRendering 
CurveRendering 

Definition at line 28 of file qsgtextnode.h.

◆ TextStyle

This enum type describes styles that can be applied to text rendering.

\value Normal The text is drawn without any style applied. \value Outline The text is drawn with an outline. \value Raised The text is drawn raised. \value Sunken The text is drawn sunken.

See also
setTextStyle(), setStyleColor()
Enumerator
Normal 
Outline 
Raised 
Sunken 

Definition at line 19 of file qsgtextnode.h.

Constructor & Destructor Documentation

◆ ~QSGTextNode()

QSGTextNode::~QSGTextNode ( )
overridedefault

Member Function Documentation

◆ addTextDocument()

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

Adds the contents of document to the text node at position.

If selectionStart is >= 0, then this marks the first character in a selected area of selectionCount number of characters. The selection is represented as a background fill with the \l selectionColor() and the selected text is rendered in the \l selectionTextColor().

This function forwards its arguments to the virtual function doAddTextDocument().

See also
clear(), doAddTextDocument()

Definition at line 77 of file qsgtextnode.h.

References position().

Referenced by QQuickText::updatePaintNode().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ addTextLayout()

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

Adds the contents of layout to the text node at position.

If selectionStart is >= 0, then this marks the first character in a selected area of selectionCount number of characters. The selection is represented as a background fill with the \l selectionColor() and the selected text is rendered in the \l selectionTextColor().

For convenience, lineStart and lineCount can be used to select the range of \l QTextLine objects to include from the layout. This can be useful, for instance, when creating elided layouts. If lineCount is < 0, then the the node will include the lines from lineStart to the end of the layout.

This function forwards its arguments to the virtual function doAddTextLayout().

See also
clear(), doAddTextLayout()

Definition at line 67 of file qsgtextnode.h.

References layout, and position().

Referenced by QQuickText::updatePaintNode(), and QQuickTextInput::updatePaintNode().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ clear()

QSGTextNode::clear ( )
pure virtual

Clears the contents of the node, deleting nodes and other data that represents the layouts and documents that have been added to it.

See also
addTextLayout(), addTextDocument()

Implemented in QSGInternalTextNode.

◆ color()

QColor QSGTextNode::color ( ) const
pure virtual

Returns the main color used when rendering the text.

Implemented in QSGInternalTextNode.

◆ doAddTextDocument()

QSGTextNode::doAddTextDocument ( QPointF position,
QTextDocument * document,
int selectionStart,
int selectionCount )
privatepure virtual

Virtual function called by addTextDocument(), which converts the contents of document to scene graph nodes and adds them to the current node at position.

If selectionStart is >= 0, then this marks the first character in a selected area of selectionCount number of characters. The selection is represented as a background fill with the \l selectionColor() and the selected text is rendered in the \l selectionTextColor().

See also
clear(), addTextDocument()

Implemented in QSGInternalTextNode.

◆ doAddTextLayout()

QSGTextNode::doAddTextLayout ( QPointF position,
QTextLayout * layout,
int selectionStart,
int selectionCount,
int lineStart,
int lineCount )
privatepure virtual

Virtual function called by addTextLayout(), which converts the contents of layout to scene graph nodes and adds them to the current node at position.

If selectionStart is >= 0, then this marks the first character in a selected area of selectionCount number of characters. The selection is represented as a background fill with the \l selectionColor() and the selected text is rendered in the \l selectionTextColor().

For convenience, lineStart and lineCount can be used to select the range of \l QTextLine objects to include from the layout. This can be useful, for instance, when creating elided layouts. If lineCount is < 0, then the the node will include the lines from lineStart to the end of the layout.

See also
clear(), addTextLayout()

Implemented in QSGInternalTextNode.

◆ filtering()

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

Returns the sampling mode used when scaling images that are part of the displayed text.

See also
setFiltering()

Implemented in QSGInternalTextNode.

◆ linkColor()

QColor QSGTextNode::linkColor ( ) const
pure virtual

Returns the color of hyperlinks in the text.

Implemented in QSGInternalTextNode.

◆ renderType()

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

Returns the type of glyph node used for rendering the text.

Implemented in QSGInternalTextNode.

◆ renderTypeQuality()

int QSGTextNode::renderTypeQuality ( ) const
pure virtual

Returns the render type quality of the node.

See \l setRenderTypeQuality() for details.

Implemented in QSGInternalTextNode.

◆ selectionColor()

QColor QSGTextNode::selectionColor ( ) const
pure virtual

Returns the color of the selection background when any part of the text is marked as selected.

Implemented in QSGInternalTextNode.

◆ selectionTextColor()

QColor QSGTextNode::selectionTextColor ( ) const
pure virtual

Returns the color of the selection text when any part of the text is marked as selected.

Implemented in QSGInternalTextNode.

◆ setColor()

void QSGTextNode::setColor ( QColor color)
pure virtual

Sets the main color to use when rendering the text to color.

The default is black: QColor(0, 0, 0).

Implemented in QSGInternalTextNode.

◆ setFiltering()

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

Sets the sampling mode used when scaling images that are part of the displayed text to filtering.

For smoothly scaled images, use \l{QSGTexture::Linear} here.

The default is \l{QSGTexture::Nearest}.

See also
filtering()

Implemented in QSGInternalTextNode.

◆ setLinkColor()

void QSGTextNode::setLinkColor ( QColor linkColor)
pure virtual

Sets the color of or hyperlinks to linkColor in the text.

The default is blue: QColor(0, 0, 255).

Implemented in QSGInternalTextNode.

◆ setRenderType()

void QSGTextNode::setRenderType ( RenderType renderType)
pure virtual

Sets the type of glyph node in use to renderType.

The default is \l QtRendering.

Implemented in QSGInternalTextNode.

◆ setRenderTypeQuality()

void QSGTextNode::setRenderTypeQuality ( int renderTypeQuality)
pure virtual

If the \l renderType() in use supports it, set the quality to use when rendering the text.

When supported, this can be used to trade visual fidelity for execution speed or memory.

When the renderTypeQuality is < 0, the default quality is used.

The renderTypeQuality can be any integer, although limitations imposed by the underlying graphics hardware may be encountered if extreme values are set. The Qt Quick Text element operates with the following predefined values:

\value DefaultRenderTypeQuality -1 (default) \value LowRenderTypeQuality 26 \value NormalRenderTypeQuality 52 \value HighRenderTypeQuality 104 \value VeryHighRenderTypeQuality 208

This value is currently only respected by the QtRendering render type. Setting it changes the resolution of the distance fields used to represent the glyphs. Setting it above normal will cause memory consumption to increase, but reduces filtering artifacts on very large text.

The default is -1.

Implemented in QSGInternalTextNode.

◆ setSelectionColor()

void QSGTextNode::setSelectionColor ( QColor color)
pure virtual

Sets the color of the selection background to color when any part of the text is marked as selected.

The default is dark blue: QColor(0, 0, 128).

Implemented in QSGInternalTextNode.

◆ setSelectionTextColor()

void QSGTextNode::setSelectionTextColor ( QColor selectionTextColor)
pure virtual

Sets the color of the selection text to selectionTextColor when any part of the text is marked as selected.

The default is white: QColor(255, 255, 255).

Implemented in QSGInternalTextNode.

◆ setStyleColor()

void QSGTextNode::setStyleColor ( QColor styleColor)
pure virtual

Sets the style color to use when rendering the text to styleColor.

The default is black: QColor(0, 0, 0).

See also
setTextStyle()

Implemented in QSGInternalTextNode.

◆ setTextStyle()

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

Sets the style of the rendered text to textStyle.

The default is Normal.

See also
setStyleColor()

Implemented in QSGInternalTextNode.

◆ setViewport()

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

Sets the bounding rect of the viewport where the text is displayed to viewport.

Providing this information makes it possible for the QSGTextNode to optimize which parts of the text layout or document are included in the scene graph.

The default is a default-constructed QRectF. For this viewport, all contents will be included in the graph.

Implemented in QSGInternalTextNode.

◆ styleColor()

QColor QSGTextNode::styleColor ( ) const
pure virtual

Returns the style color used when rendering the text.

See also
textStyle()

Implemented in QSGInternalTextNode.

◆ textStyle()

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

Returns the style of the rendered text.

See also
styleColor()

Implemented in QSGInternalTextNode.

◆ viewport()

QRectF QSGTextNode::viewport ( ) const
pure virtual

Returns the current viewport set for this QSGTextNode.

Implemented in QSGInternalTextNode.


The documentation for this class was generated from the following files: