QTextLine Class
QTextLine クラスは、QTextLayout 内のテキスト行を表します。 ... 詳細
Header: | #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
行の上りを返す。
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
行の下降を返す。
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
これはオーバーロードされた関数です。
from とlength で定義 さ れた範囲内のキ ャ ラ ク タ に対す る 、 こ の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.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。