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 |
- Liste de tous les membres, y compris les membres hérités
- QTextLine fait partie des API de traitement de texte enrichi.
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
| Constante | Valeur |
|---|---|
QTextLine::CursorBetweenCharacters | 0 |
QTextLine::CursorOnCharacter | 1 |
enum QTextLine::Edge
| Constante | Valeur |
|---|---|
QTextLine::Leading | 0 |
QTextLine::Trailing | 1 |
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.