QTextLine Class
QTextLine クラスは、QTextLayout 内の 1 行のテキストを表します。詳細...
| ヘッダー: | #include <QTextLine> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Gui) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
| qmake: | QT += gui |
- 継承されたメンバーを含むすべてのメンバーの一覧
- QTextLineは、リッチテキスト処理APIの一部です。
注:このクラスのすべての関数は再入可能です。
パブリック型
| enum | CursorPosition { CursorBetweenCharacters, CursorOnCharacter } |
| enum | Edge { Leading, Trailing } |
パブリック関数
| QTextLine() | |
| qreal | ascent() const |
| qreal | cursorToX(int *cursorPos, QTextLine::Edge edge = Leading) const |
| qreal | cursorToX(int cursorPos, QTextLine::Edge edge = Leading) const |
| qreal | descent() const |
| void | draw(QPainter *painter, const QPointF &position) const |
(since 6.5) QList<QGlyphRun> | glyphRuns(int from, int length, QTextLayout::GlyphRunRetrievalFlags retrievalFlags) const |
| QList<QGlyphRun> | glyphRuns(int from = -1, int length = -1) const |
| qreal | height() const |
| qreal | horizontalAdvance() const |
| bool | isValid() const |
| qreal | leading() const |
| bool | leadingIncluded() const |
| int | lineNumber() const |
| QRectF | naturalTextRect() const |
| qreal | naturalTextWidth() const |
| QPointF | position() const |
| QRectF | rect() const |
| void | setLeadingIncluded(bool included) |
| void | setLineWidth(qreal width) |
| void | setNumColumns(int numColumns) |
| void | setNumColumns(int numColumns, qreal alignmentWidth) |
| void | setPosition(const QPointF &pos) |
| int | textLength() const |
| int | textStart() const |
| qreal | width() const |
| qreal | x() const |
| int | xToCursor(qreal x, QTextLine::CursorPosition cpos = CursorBetweenCharacters) const |
| qreal | y() const |
詳細な説明
テキスト行は通常、QTextLayout::createLine() によって作成されます。
作成後、setLineWidth() またはsetNumColumns() 関数を使用して、その行に内容を記入することができます。行には、占める矩形(rect())、座標(x() およびy())、textLength()、width() およびnaturalTextWidth()、ならびにテキストに対する相対位置(ascent() およびdescent())など、多くの属性があります。 行単位でのカーソルの位置は、cursorToX() から取得でき、その逆はxToCursor() から取得できます。行の移動は、setPosition() で行えます。
メンバ型のドキュメント
enum QTextLine::CursorPosition
| 定数 | 定数 |
|---|---|
QTextLine::CursorBetweenCharacters | 0 |
QTextLine::CursorOnCharacter | 1 |
enum QTextLine::Edge
| 定数 | 定数 |
|---|---|
QTextLine::Leading | 0 |
QTextLine::Trailing | 1 |
メンバ関数のドキュメント
QTextLine::QTextLine()
無効な行を作成します。
qreal QTextLine::ascent() const
その行の昇高を返します。
descent() およびheight()も参照してください 。
qreal QTextLine::cursorToX(int *cursorPos, QTextLine::Edge edge = Leading) const
カーソル位置 `cursorPos ` を、edge を考慮した上で、行内の対応する x 座標に変換します。
cursorPos が有効なカーソル位置でない場合、代わりに最も近い有効なカーソル位置が使用され、cursorPos はこの有効なカーソル位置を指すように変更されます。
xToCursor()も参照してください 。
qreal QTextLine::cursorToX(int cursorPos, QTextLine::Edge edge = Leading) const
これはオーバーロードされた関数です。
qreal QTextLine::descent() const
その行の下降量を返します。
ascent() およびheight()も参照してください 。
void QTextLine::draw(QPainter *painter, const QPointF &position) const
指定されたpainter 上で、指定されたposition に線を引きます。
[since 6.5] QList<QGlyphRun> QTextLine::glyphRuns(int from, int length, QTextLayout::GlyphRunRetrievalFlags retrievalFlags) const
from およびlength で定義された範囲内の文字について、このQTextLine 内のすべてのグリフのグリフインデックスと位置を返します。from のインデックスは、包含するQTextLayout 内のテキストの先頭からの相対位置であり、範囲は関数textStart() およびtextLength() によって指定されるQTextLine の範囲内である必要があります。
retrievalFlags は、レイアウトからQGlyphRun のどのプロパティを取得するかを指定します。割り当てやメモリ消費を最小限に抑えるため、後でアクセスする必要があるプロパティのみを含めるように設定する必要があります。
from が負の値の場合、デフォルトでtextStart()が返され、length が負の値の場合、デフォルトでtextLength()の戻り値が返されます。
この関数は Qt 6.5 で導入されました。
QTextLayout::glyphRuns()も参照してください 。
QList<QGlyphRun> QTextLine::glyphRuns(int from = -1, int length = -1) const
このQTextLine 内のすべてのグリフについて、from およびlength で定義された範囲内の文字に対するグリフインデックスと位置を返します。from のインデックスは、包含するQTextLayout 内のテキストの先頭からの相対位置であり、範囲は関数textStart()およびtextLength()によって指定されるQTextLine の範囲内である必要があります。
from が負の場合、デフォルトでtextStart()が呼び出され、length が負の場合、デフォルトでtextLength()の戻り値が返されます。
注:これは 、glyphRuns(from, length, QTextLayout::GlyphRunRetrievalFlag::GlyphIndexes | QTextLayout::GlyphRunRetrievalFlag::GlyphPositions) を呼び出すことと同等です。
これはオーバーロードされた関数です。
QTextLayout::glyphRuns()も参照してください 。
qreal QTextLine::height() const
行の高さを返します。先頭行を含めない場合、これは `ascent()` + `descent()` に等しくなります。先頭行を含む場合、これは `ascent()` + `descent()` + `leading()` に等しくなります。
ascent()、descent()、leading()、およびsetLeadingIncluded()も参照してください 。
qreal QTextLine::horizontalAdvance() const
テキストの水平方向の進み量を返します。テキストの進み量とは、その位置から、テキストが自然に描画される次の位置までの距離のことです。
この間隔をテキスト行の位置に足し、それを2行目のテキスト行の位置として使用することで、2行を間に隙間なく並べて配置することができます。
bool QTextLine::isValid() const
このテキスト行が有効な場合は `true ` を返し、そうでない場合は `false` を返します。
qreal QTextLine::leading() const
その行の先頭文字を返します。
ascent()、descent()、およびheight()も参照してください 。
bool QTextLine::leadingIncluded() const
行の高さに正の先頭余白が含まれている場合は `true ` を返し、そうでない場合は `false` を返します。
デフォルトでは、先頭の余白は含まれません。
setLeadingIncluded()も参照してください 。
int QTextLine::lineNumber() const
テキストエンジン内のその行の位置を返します。
QRectF QTextLine::naturalTextRect() const
その線によって囲まれた矩形を返します。
qreal QTextLine::naturalTextWidth() const
テキストが占める行の幅を返します。この値は常に `width()` 以下であり、改行位置を変更せずに `layout()` が使用できる最小の幅となります。
QPointF QTextLine::position() const
テキストレイアウトの位置に対する、その行の位置を返します。
setPosition()も参照してください 。
QRectF QTextLine::rect() const
その行の境界矩形を返します。
x()、y()、textLength()、およびwidth()も参照してください 。
void QTextLine::setLeadingIncluded(bool included)
included がtrueの場合、行の高さに正の行頭余白を含めます。そうでない場合は、行頭余白を含めません。
デフォルトでは、行頭余白は含まれません。
負の行頭余白は無視されるため、行を重ね合わせることで、テキスト行を使用するコード内で処理する必要があります。
leadingIncluded()も参照してください 。
void QTextLine::setLineWidth(qreal width)
指定されたwidth を使用して行を配置します。行は、開始位置から、その行に収まる限りの文字数分だけ埋められます。テキストを行末で分割できない場合は、次の空白文字またはテキストの末尾まで、追加の文字で埋められます。
void QTextLine::setNumColumns(int numColumns)
行を配置します。行は、開始位置からnumColumns で指定された文字数分だけ文字で埋められます。numColumns 文字までテキストを分割できない場合、行は次の空白文字またはテキストの終わりまで、指定された文字数分だけ文字で埋められます。
void QTextLine::setNumColumns(int numColumns, qreal alignmentWidth)
行を配置します。行は、開始位置からnumColumns で指定された文字数分だけ文字で埋められます。テキストをnumColumns 文字単位に分割できない場合、行は次の空白またはテキストの終わりまで、指定された文字数分だけ文字で埋められます。指定されたalignmentWidth は、位置合わせの基準幅として使用されます。
void QTextLine::setPosition(const QPointF &pos)
行をpos の位置に移動します。
position()も参照してください 。
int QTextLine::textLength() const
その行のテキストの長さを返します。
naturalTextWidth()も参照してください 。
int QTextLine::textStart() const
QTextLayout に渡された文字列の先頭から、行の開始位置を返します。
qreal QTextLine::width() const
layout() 関数で指定された行の幅を返します。
naturalTextWidth()、x()、y()、textLength()、およびrect()も参照してください 。
qreal QTextLine::x() const
その行の x 座標を返します。
rect()、y()、textLength()、およびwidth()も参照してください 。
int QTextLine::xToCursor(qreal x, QTextLine::CursorPosition cpos = CursorBetweenCharacters) const
x座標x を、カーソル位置のタイプcpos に応じて、最も近い一致するカーソル位置に変換します。結果のカーソル位置には、プレエディット領域のテキストが含まれる場合があることに注意してください。
cursorToX()も参照してください 。
qreal QTextLine::y() const
その行の y 座標を返します。
x()、rect()、textLength()、およびwidth()も参照してください 。
© 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.