Sur cette page

QTextLine Class

La classe QTextLine représente une ligne de texte à l'intérieur d'un site QTextLayout. 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 par 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()), ses coordonnées ( textLength(), width() et naturalTextWidth()), ainsi que ses coordonnées ( ascent() et descent()) par rapport au texte. La position du curseur par rapport à la ligne est disponible à partir de cursorToX() et son inverse à partir de 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 des fonctions membres

QTextLine::QTextLine()

Crée une ligne non valide.

qreal QTextLine::ascent() const

Renvoie l'ascension de la ligne.

Voir aussi descent() et height().

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

Convertit la position du curseur cursorPos en la position x correspondante à l'intérieur de la ligne, en tenant compte de 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 aussi 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 aussi ascent() et height().

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

Dessine une ligne sur le site painter à l'endroit spécifié position.

[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 ce site QTextLine pour les caractères de la plage définie par from et length. L'indice from est relatif au début du texte dans le fichier contenant QTextLayout, et la plage doit être comprise dans la plage de QTextLine telle qu'indiquée par les fonctions textStart() et textLength().

L'adresse retrievalFlags spécifie les propriétés de l'adresse QGlyphRun qui seront extraites de la présentation. Pour minimiser les allocations et la consommation de mémoire, il convient d'inclure uniquement les propriétés auxquelles vous aurez besoin d'accéder ultérieurement.

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 de retour de textLength().

Cette fonction a été introduite dans Qt 6.5.

Voir aussi QTextLayout::glyphRuns().

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

Renvoie les index et les positions de tous les glyphes de ce site QTextLine pour les caractères de la plage définie par from et length. L'indice from est relatif au début du texte dans le fichier QTextLayout, et la plage doit être comprise dans la plage de QTextLine telle qu'indiquée 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 de retour de textLength().

Note : Ceci est équivalent à 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. Elle est égale à ascent() + descent() si l'espacement n'est pas inclus. Dans le cas contraire, elle est égale à ascent() + descent() + leading().

Voir aussi ascent(), descent(), leading() et setLeadingIncluded().

qreal QTextLine::horizontalAdvance() const

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

En ajoutant l'avance à la position de la ligne de texte et en l'utilisant comme position d'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 l'en-tête de la ligne.

Voir aussi ascent(), descent() et height().

bool QTextLine::leadingIncluded() const

Renvoie true si l'espacement positif est inclus dans la hauteur de la ligne ; sinon, renvoie false.

Par défaut, l'espacement n'est pas pris en compte.

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 couvert par la ligne.

qreal QTextLine::naturalTextWidth() const

Renvoie la largeur de la ligne occupée par le texte. Cette valeur est toujours <= à width() et correspond à la largeur minimale qui pourrait être utilisée par layout() sans modifier la position du saut de ligne.

QPointF QTextLine::position() const

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

Voir aussi setPosition().

QRectF QTextLine::rect() const

Renvoie le rectangle de délimitation de la ligne.

Voir aussi x(), y(), textLength() et width().

void QTextLine::setLeadingIncluded(bool included)

Inclut l'espacement positif dans la hauteur de la ligne si included est vrai ; sinon, n'inclut pas l'espacement.

Par défaut, l'espacement n'est pas pris en compte.

Notez que l'espacement 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)

Trace la ligne avec la valeur donnée width. La ligne est remplie à partir de sa position de départ avec autant de caractères qu'elle peut en contenir. Si le texte ne peut être scindé en fin de ligne, il sera complété par des caractères supplémentaires jusqu'au prochain espace blanc ou jusqu'à la fin du texte.

void QTextLine::setNumColumns(int numColumns)

Met en place la ligne. La ligne est remplie à partir de sa position de départ avec autant de caractères que ceux spécifiés par numColumns. Si le texte ne peut être scindé avant numColumns caractères, la ligne sera remplie avec autant de caractères jusqu'au prochain espace blanc ou jusqu'à la fin du texte.

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

Met en place la ligne. La ligne est remplie à partir de sa position de départ avec autant de caractères que ceux spécifiés par numColumns. Si le texte ne peut être scindé avant numColumns caractères, la ligne sera remplie avec autant de caractères jusqu'au prochain espace blanc ou jusqu'à la fin du texte. La valeur fournie par alignmentWidth est utilisée comme largeur de référence pour l'alignement.

void QTextLine::setPosition(const QPointF &pos)

Déplace la ligne à la position pos.

Voir aussi position().

int QTextLine::textLength() const

Renvoie la longueur du texte de la ligne.

Voir aussi naturalTextWidth().

int QTextLine::textStart() const

Renvoie le début de la ligne à partir du début de la chaîne de caractères transmise à QTextLayout.

qreal QTextLine::width() const

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

Voir aussi naturalTextWidth(), x(), y(), textLength() et rect().

qreal QTextLine::x() const

Renvoie la position x de la ligne.

Voir aussi rect(), y(), textLength() et width().

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

Convertit la coordonnée x x, en la position du curseur la plus proche, en fonction du type de position du curseur, cpos. Notez que la position du curseur qui en résulte inclut le texte éventuel de la zone de pré-interprétation.

Voir aussi cursorToX().

qreal QTextLine::y() const

Renvoie la position y de la ligne.

Voir aussi 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.