QTextLine Class

QTextLine クラスは、QTextLayout 内のテキスト行を表します。 ... 詳細

Header: #include <QTextLine>
CMake: find_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake: QT += gui

注意:このクラスの関数はすべてリエントラントです。

パブリック型

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::CursorBetweenCharacters0
QTextLine::CursorOnCharacter1

enum QTextLine::Edge

定数定数値
QTextLine::Leading0
QTextLine::Trailing1

メンバ関数ドキュメント

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

これはオーバーロードされた関数です。

fromlength で定義 さ れた範囲内のキ ャ ラ ク タ に対す る 、 こ のQTextLine 内のすべてのグ リ フ のグ リ フ イ ンデ ッ ク ス と 位置を返 し ます。from イ ンデ ッ ク スは、QTextLayout を含むテ キ ス ト の先頭か ら の相対位置であ り 、 こ の範囲は関数textStart () とtextLength () に よ っ て与え ら れたQTextLine の範囲内でなければな り ません。

from が負の場合、デフォルトはtextStart() となり、length が負の場合、デフォルトはtextLength() の戻り値となる。

注: これは glyphRuns(from, length, QTextLayout::GlyphRunRetrievalFlag::GlyphIndexes | QTextLayout::GlyphRunRetrievalFlag::GlyphPositions) を呼び出すのと同じです。

QTextLayout::glyphRuns()も参照してください

qreal QTextLine::height() const

行の高さを返します。これは、leading が含まれていない場合はascent() +descent() に等しくなります。leading が含まれる場合は、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

テ キ ス ト で占め ら れてい る 行の幅を返 し ます。これは常に <= towidth() であり、改行位置を変えずに 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() も参照して ください。

本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。