QSGTextNode Class
QSGTextNode クラスは、Qt Quick シーングラフにテキストレイアウトやテキストドキュメントを描画するためのクラスです。詳細...
Header: | #include <QSGTextNode> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Quick) target_link_libraries(mytarget PRIVATE Qt6::Quick) |
qmake: | QT += quick |
Since: | Qt 6.7 |
Inherits: | 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()も参照してください 。
©2024 The Qt Company Ltd. 本書に含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。