QSGTextNode Class
QSGTextNode クラスは、Qt Quick シーングラフにテキストレイアウトとテキストドキュメントを描画するためのクラスです。詳細...
ヘッダー | #include <QSGTextNode> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Quick) target_link_libraries(mytarget PRIVATE Qt6::Quick) |
qmake: | QT += quick |
以来: | Qt 6.7 |
継承: | QSGTransformNode |
パブリックな型
enum | RenderType { QtRendering, NativeRendering, CurveRendering } |
enum | TextStyle { Normal, Outline, Raised, Sunken } |
パブリック関数
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 |
詳細説明
QSGTextNodeは、テキストを必要とするカスタムQt Quick アイテムを作成するのに便利です。これはQt Quick の Text、TextEdit 、TextInput 要素で使用されます。
QSGTextNode オブジェクトは、QQuickWindow::createTextNode() を使用して作成できます。addTextLayout() およびaddTextDocument() 関数は、QSGTextNode にテキストを追加する方法を提供します。テキストは既にレイアウトされている必要があります。
注釈 addTextLayout() またはaddTextDocument() を呼び出す前に、プロパティを設定しておかないと効果がありません。
注意: QSGTextNode の破棄には注意が必要です。特に、グラフィック・リソースを参照しているため、Qt Quick シーン・グラフが無効になったときに削除する必要があります。ノードがグラフの一部であり、OwnedByParent
フラグが設定されている場合(これがデフォルト)、これは自動的に行われます。しかし、OwnedByParent
フラグがクリアされ、ノードが手動で処分される場合、シーン・グラフが無効になったときにこれを行うように注意しなければなりません。これは、QQuickWindow::sceneGraphInvalidated() シグナルに接続するか、QQuickItem のサブクラスにinvalidateSceneGraph()
という名前のスロットを実装することで行うことができます。詳細については、QQuickItem のドキュメントも参照してください。
メンバー・タイプのドキュメント
enum QSGTextNode::RenderType
この列挙型は、テキストのレンダリングに使用されるグリフノードのタイプを記述する。
定数 | 値 | 説明 |
---|---|---|
QSGTextNode::QtRendering | 0 | テキストは、各グリフに対してスケーラブルな距離フィールドを使用してレンダリングされる。 |
QSGTextNode::NativeRendering | 1 | テキストは、プラットフォーム固有の技法を用いてレンダリングされる。 |
QSGTextNode::CurveRendering | 2 | テ キ ス ト は、 グ ラ フ ィ ッ ク ハ ー ド ウ ェ ア上で直接動作す る カ ーブ ラ ス タ イ ザーを用いてレンダリングされる。 |
テ キ ス ト を タ ーゲ ッ ト プ ラ ッ ト フ ォーム上でネ イ テ ィ ブに見せる こ と を好み、 テ キ ス ト の変形な ど の高度な機能を必要 と し ない場合はNativeRendering
を選択。こ の よ う な機能を NativeRendering レ ン ダータ イ プ と 組み合わせて使用す る と 、 結果が貧弱にな り 、 場合に よ っ ては ピ ク セル化 さ れます。
Text.QtRendering
とText.CurveRendering
はどちらもハードウェアで高速化された技法です。QtRendering
は 2 つのうちで高速ですが、より多くのメモリを使用し、大きなサイズではレンダリングのアーチファクトが発生します。CurveRendering
は、QtRendering
で良好な視覚的結果が得られない場合や、グラフィックス メモリの消費を抑えることが優先される場合の代替手段として考慮する必要があります。
setRenderType() およびsetRenderTypeQuality()も参照して ください。
enum QSGTextNode::TextStyle
この列挙型は、テキスト描画に適用できるスタイルを記述します。
定数 | 値 | 説明 |
---|---|---|
QSGTextNode::Normal | 0 | テキストはスタイルが適用されずに描画されます。 |
QSGTextNode::Outline | 1 | テキストはアウトラインで描画されます。 |
QSGTextNode::Raised | 2 | テキストは盛り上がって描画されます。 |
QSGTextNode::Sunken | 3 | テキストは沈んで描画されます。 |
setTextStyle() およびsetStyleColor()も参照 。
メンバ関数ドキュメント
void QSGTextNode::addTextDocument(QPointF position, QTextDocument *document, int selectionStart = -1, int selectionCount = -1)
position のテキストノードにdocument の内容を追加する。selectionStart が >= 0 の場合、これはselectionCount の文字数で選択された領域の最初の文字をマークする。選択領域はselectionColor() で背景塗りつぶしとして表現され、選択されたテキストはselectionTextColor() でレンダリングされます。
この関数は、仮想関数 doAddTextDocument() に引数を転送します。
clear() および doAddTextDocument()も参照 。
void QSGTextNode::addTextLayout(QPointF position, QTextLayout *layout, int selectionStart = -1, int selectionCount = -1, int lineStart = 0, int lineCount = -1)
position のテキストノードにlayout の内容を追加する。selectionStart が >= 0 の場合、これはselectionCount の文字数で選択された領域の最初の文字をマークする。選択領域はselectionColor() で背景塗りつぶしとして表現され、選択テキストはselectionTextColor() でレンダリングされます。
便宜上、lineStart とlineCount を使って、レイアウトに含めるQTextLine オブジェクトの範囲を選択することができます。これは、例えば、エリッドレイアウトを作成するときに便利です。lineCount が < 0 の場合、ノードはlineStart からレイアウトの最後までの行を含めます。
この関数は仮想関数doAddTextLayout()に引数を転送します。
clear() および doAddTextLayout()も参照してください 。
[pure virtual]
void QSGTextNode::clear()
ノードの内容をクリアし、ノードに追加されたレイアウトやドキュメントを表すノードやその他のデータを削除します。
addTextLayout() およびaddTextDocument()も参照してください 。
[pure virtual]
QColor QSGTextNode::color() const
テキストをレンダリングする際に使用するメインカラーを返します。
setColor()も参照 ください。
[pure virtual]
QSGTexture::Filtering QSGTextNode::filtering() const
表示 さ れてい る テ キ ス ト の一部であ る 画像を拡縮す る 際に用い ら れ る サンプ リ ン グモー ド を返 し ます。
setFiltering()も参照 ください。
[pure virtual]
QColor QSGTextNode::linkColor() const
テキスト中のハイパーリンクの色を返します。
setLinkColor()も参照ください 。
[pure virtual]
QSGTextNode::RenderType QSGTextNode::renderType() const
テキストのレンダリングに使われたグリフノードの種類を返します。
setRenderType()も参照 。
[pure virtual]
int QSGTextNode::renderTypeQuality() const
ノードのレンダリングタイプの品質を返す。詳細はsetRenderTypeQuality() を参照。
setRenderTypeQuality()も参照 。
[pure virtual]
QColor QSGTextNode::selectionColor() const
テキストの一部が選択されているときに、選択範囲の背景の色を返します。
setSelectionColor()も参照ください 。
[pure virtual]
QColor QSGTextNode::selectionTextColor() const
テキストの一部が選択されている場合に、選択テキストの色を返します。
setSelectionTextColor()も参照してください 。
[pure virtual]
void QSGTextNode::setColor(QColor color)
テキストをレンダリングする際に使用するメインカラーをcolor に設定します。
デフォルトは黒です:QColor(0, 0, 0)
。
color()も参照 。
[pure virtual]
void QSGTextNode::setFiltering(QSGTexture::Filtering filtering)
表示 さ れてい る テ キ ス ト の一部であ る 画像を拡大縮小す る 際に用い ら れ る サンプ リ ン グモー ド をfiltering に設定 し ます。なめ ら かに拡縮 さ れた画像については、 こ こ ではQSGTexture::Linear を用います。
デフ ォル ト はQSGTexture::Nearest です。
filtering()も参照 。
[pure virtual]
void QSGTextNode::setLinkColor(QColor linkColor)
linkColor へのハイパーリンクの色を設定します。
デフォルトは青です:QColor(0, 0, 255)
。
linkColor()も参照 。
[pure virtual]
void QSGTextNode::setRenderType(QSGTextNode::RenderType renderType)
使用中のグ リ フ ノ ー ド の種類をrenderType に設定 し ます。
デフ ォル ト はQtRendering です。
renderType()も参照 。
[pure virtual]
void QSGTextNode::setRenderTypeQuality(int renderTypeQuality)
使用中のrenderType() がサポートしている場合、テキストのレンダリング時に使用する品質を設定します。サポートされている場合、これは視覚的な忠実度を実行速度やメモリと交換するために使用することができます。
renderTypeQuality が < 0 の場合、デフォルトの品質が使用されます。
renderTypeQuality には任意の整数を指定できますが、極端な値を設定すると基礎となるグラフィックス・ハードウェアによる制限が発生する可能性があります。Qt Quick Text要素は、以下の定義済みの値で動作します:
定数 | 説明 |
---|---|
DefaultRenderTypeQuality | -1(デフォルト) |
LowRenderTypeQuality | 26 |
NormalRenderTypeQuality | 52 |
HighRenderTypeQuality | 104 |
VeryHighRenderTypeQuality | 208 |
この値は現在のところQtRendering レンダリングタイプでのみ尊重される。この値を設定すると、グリフを表現するために使用される距離フィールドの解像度が変更される。通常より大きく設定するとメモリ消費量が増加するが、非常に大きなテキストに対するフィルタリングアーチファクトは減少する。
デフォルトは -1 です。
renderTypeQuality()も参照 。
[pure virtual]
void QSGTextNode::setSelectionColor(QColor color)
テキス ト のいずれかの部分が選択 と マー ク さ れてい る と き に、 選択背景の色をcolor に設定 し ます。
デフォルトは紺色です:QColor(0, 0, 128)
。
selectionColor()も参照 。
[pure virtual]
void QSGTextNode::setSelectionTextColor(QColor selectionTextColor)
テキス ト のいずれかの部分が選択 と し てマ ー ク さ れてい る と き に、 選択テキス ト の色をselectionTextColor に設定 し ます。
デフォルトは白です:QColor(255, 255, 255)
。
selectionTextColor()も参照してください 。
[pure virtual]
void QSGTextNode::setStyleColor(QColor styleColor)
テ キ ス ト を レ ン ダ リ ングす る 際に使用す る ス タ イル カ ラ ーをstyleColor に設定 し ます。
デフォルトは黒です:QColor(0, 0, 0)
。
styleColor() およびsetTextStyle()も参照 。
[pure virtual]
void QSGTextNode::setTextStyle(QSGTextNode::TextStyle textStyle)
レンダリングテキストのスタイルをtextStyle に設定します。 デフォルトはNormal
です。
textStyle() およびsetStyleColor()も参照 。
[pure virtual]
void QSGTextNode::setViewport(const QRectF &viewport)
テキストが表示されるビューポートの外接矩形をviewport に設定します。この情報を提供することで、QSGTextNode 、テキストレイアウトやドキュメントのどの部分がシーングラフに含まれるかを最適化することが可能になります。
デフォルトは、デフォルトで構成されたQRectF である。このビューポートでは、すべてのコンテンツがグラフに含まれます。
viewport()も参照してください 。
[pure virtual]
QColor QSGTextNode::styleColor() const
テキストをレンダリングする際に使用するスタイルカラーを返します。
setStyleColor() およびtextStyle()も参照 ください。
[pure virtual]
QSGTextNode::TextStyle QSGTextNode::textStyle()
レンダリングされたテキストのスタイルを返します。
setTextStyle() およびstyleColor()も参照 ください。
[pure virtual]
QRectF QSGTextNode::viewport() const
このQSGTextNode に対して設定されている現在のビューポートを返します。
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.