Sur cette page

QTextLine Class

La classe QTextLine représente une ligne de texte à l'intérieur d'un objet « QTextLayout ». En savoir plus...

En-tête : #include <QTextLine>
CMake : find_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake : QT += gui

Remarque : toutes les fonctions de cette classe sont réentrantes.

Types publics

enum CursorPosition { CursorBetweenCharacters, CursorOnCharacter }
enum Edge { Leading, Trailing }

Fonctions publiques

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

Description détaillée

Une ligne de texte est généralement créée à l'aide de la fonction QTextLayout::createLine().

Une fois créée, la ligne peut être remplie à l’aide des fonctions ` setLineWidth()` ou ` setNumColumns()`. Une ligne possède un certain nombre d’attributs, notamment le rectangle qu’elle occupe (` rect()`), ses coordonnées (` x()` et ` y()`), son indice de ligne (` textLength()`), son indice de colonne (` width()` et ` naturalTextWidth()`), ainsi que ses indices de position relative au texte (` ascent()` et ` descent()`). La position du curseur par rapport à la ligne est accessible via cursorToX() et son inverse via xToCursor(). Une ligne peut être déplacée à l’aide de setPosition().

Documentation sur les types de membres

enum QTextLine::CursorPosition

ConstanteValeur
QTextLine::CursorBetweenCharacters0
QTextLine::CursorOnCharacter1

enum QTextLine::Edge

ConstanteValeur
QTextLine::Leading0
QTextLine::Trailing1

Documentation sur les fonctions membres

QTextLine::QTextLine()

Crée une ligne non valide.

qreal QTextLine::ascent() const

Renvoie l'ascendance de la ligne.

Voir également descent() et height().

qreal QTextLine::cursorToX(int *cursorPos, QTextLine::Edge edge = Leading) const

Convertit la position du curseur cursorPos en position x correspondante à l'intérieur de la ligne, en tenant compte de l'edge.

Si cursorPos n’est pas une position de curseur valide, la position de curseur valide la plus proche sera utilisée à la place, et cursorPos sera modifié pour pointer vers cette position de curseur valide.

Voir également xToCursor().

qreal QTextLine::cursorToX(int cursorPos, QTextLine::Edge edge = Leading) const

Il s'agit d'une fonction surchargée.

qreal QTextLine::descent() const

Renvoie la descente de la ligne.

Voir également ascent() et height().

void QTextLine::draw(QPainter *painter, const QPointF &position) const

Trace une ligne sur l'painter e indiquée, à l'position spécifiée.

[since 6.5] QList<QGlyphRun> QTextLine::glyphRuns(int from, int length, QTextLayout::GlyphRunRetrievalFlags retrievalFlags) const

Renvoie les index et les positions de tous les glyphes de cette « QTextLine » pour les caractères compris dans la plage définie par from et length. L’index de la « from » est relatif au début du texte dans la « QTextLayout » qui la contient, et la plage doit se situer dans l’intervalle défini par QTextLine, tel qu’indiqué par les fonctions textStart() et textLength().

L’ retrievalFlags spécifie quelles propriétés de l’ QGlyphRun seront récupérées à partir de la mise en page. Afin de minimiser les allocations et la consommation de mémoire, cette valeur doit être définie de manière à n’inclure que les propriétés auxquelles vous devrez accéder ultérieurement.

Si from est négatif, la valeur par défaut est textStart(), et si length est négatif, la valeur par défaut est la valeur renvoyée par textLength().

Cette fonction a été introduite dans Qt 6.5.

Voir également QTextLayout::glyphRuns().

QList<QGlyphRun> QTextLine::glyphRuns(int from = -1, int length = -1) const

Renvoie les indices et les positions de tous les glyphes de ce ` QTextLine ` pour les caractères compris dans la plage définie par ` from ` et ` length`. L’indice ` from ` est relatif au début du texte dans le ` QTextLayout` contenant, et la plage doit se situer dans la plage de ` QTextLine ` telle que fournie par les fonctions ` textStart()` et ` textLength()`.

Si ` from ` est négatif, la valeur par défaut sera ` textStart()`, et si ` length ` est négatif, la valeur par défaut sera la valeur renvoyée par ` textLength()`.

Remarque : cela équivaut à appeler glyphRuns(from, length, QTextLayout::GlyphRunRetrievalFlag::GlyphIndexes | QTextLayout::GlyphRunRetrievalFlag::GlyphPositions).

Il s'agit d'une fonction surchargée.

Voir également QTextLayout::glyphRuns().

qreal QTextLine::height() const

Renvoie la hauteur de la ligne. Cette valeur est égale à ascent() + descent() si l'espacement de tête n'est pas pris en compte. Si l'espacement de tête est pris en compte, cette valeur est égale à ascent() + descent() + leading().

Voir également ascent(), descent(), leading() et setLeadingIncluded().

qreal QTextLine::horizontalAdvance() const

Renvoie l'avance horizontale du texte. L'avance du texte correspond à la distance entre sa position actuelle et la position suivante à laquelle le texte serait naturellement affiché.

En ajoutant cet espacement à la position de la ligne de texte et en l'utilisant comme position pour une deuxième ligne de texte, vous pourrez positionner les deux lignes côte à côte sans espace entre elles.

bool QTextLine::isValid() const

Renvoie « true » si cette ligne de texte est valide ; sinon, renvoie « false ».

qreal QTextLine::leading() const

Renvoie le caractère de début de ligne.

Voir également ascent(), descent() et height().

bool QTextLine::leadingIncluded() const

Renvoie « true » si l'espacement initial positif est pris en compte dans la hauteur de la ligne ; sinon, renvoie « false ».

Par défaut, l'espacement initial n'est pas inclus.

Voir aussi setLeadingIncluded().

int QTextLine::lineNumber() const

Renvoie la position de la ligne dans le moteur de texte.

QRectF QTextLine::naturalTextRect() const

Renvoie le rectangle délimité par la ligne.

qreal QTextLine::naturalTextWidth() const

Renvoie la largeur de la ligne occupée par le texte. Cette valeur est toujours inférieure ou égale à ` width()` ; il s'agit de la largeur minimale pouvant être utilisée par la fonction `layout()` sans modifier la position du saut de ligne.

QPointF QTextLine::position() const

Renvoie la position de la ligne par rapport à celle de la mise en page du texte.

Voir aussi setPosition().

QRectF QTextLine::rect() const

Renvoie le rectangle englobant de la ligne.

Voir également x(), y(), textLength() et width().

void QTextLine::setLeadingIncluded(bool included)

Inclut l'interligne positif dans la hauteur de la ligne si la valeur « included » est vraie ; dans le cas contraire, l'interligne n'est pas inclus.

Par défaut, l'interligne n'est pas inclus.

Notez qu’un interligne négatif est ignoré ; il doit être géré dans le code utilisant les lignes de texte en laissant les lignes se chevaucher.

Voir également leadingIncluded().

void QTextLine::setLineWidth(qreal width)

Affiche la ligne à l'aide de l'width. La ligne est remplie à partir de sa position de départ avec autant de caractères que la ligne peut en contenir. Si le texte ne peut pas être coupé à la fin de la ligne, celle-ci sera complétée par des caractères supplémentaires jusqu'à l'espace suivant ou jusqu'à la fin du texte.

void QTextLine::setNumColumns(int numColumns)

Remplit la ligne. La ligne est remplie à partir de sa position initiale avec autant de caractères que le nombre spécifié par ` numColumns`. Si le texte ne peut pas être divisé en segments de ` numColumns ` caractères, la ligne sera remplie avec autant de caractères que possible jusqu'à l'espace suivant ou jusqu'à la fin du texte.

void QTextLine::setNumColumns(int numColumns, qreal alignmentWidth)

Mise en forme de la ligne. La ligne est remplie à partir de sa position de départ avec autant de caractères que le spécifie ` numColumns`. Si le texte ne peut pas être divisé en segments de ` numColumns ` caractères, la ligne sera remplie avec autant de caractères que possible jusqu’à l’espace suivant ou jusqu’à la fin du texte. La valeur fournie ` alignmentWidth ` sert de largeur de référence pour l’alignement.

void QTextLine::setPosition(const QPointF &pos)

Déplace la ligne à la position pos.

Voir également position().

int QTextLine::textLength() const

Renvoie la longueur du texte contenu dans la ligne.

Voir aussi naturalTextWidth().

int QTextLine::textStart() const

Renvoie la position de la première ligne à partir du début de la chaîne transmise à la fonction ` QTextLayout`.

qreal QTextLine::width() const

Renvoie la largeur de la ligne telle que spécifiée par la fonction layout().

Voir également naturalTextWidth(), x(), y(), textLength() et rect().

qreal QTextLine::x() const

Renvoie la position x de la ligne.

Voir également rect(), y(), textLength() et width().

int QTextLine::xToCursor(qreal x, QTextLine::CursorPosition cpos = CursorBetweenCharacters) const

Convertit la coordonnée x x en la position de curseur correspondante la plus proche, en fonction du type de position du curseur cpos. Notez que la position finale du curseur inclut le texte éventuel de la zone de pré-édition.

Voir également cursorToX().

qreal QTextLine::y() const

Renvoie la position y de la ligne.

Voir également x(), rect(), textLength() et 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.