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 |
- Liste de tous les membres, y compris les membres hérités
- QTextLine fait partie de Rich Text Processing APIs.
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
| Constante | Valeur |
|---|---|
QTextLine::CursorBetweenCharacters | 0 |
QTextLine::CursorOnCharacter | 1 |
enum QTextLine::Edge
| Constante | Valeur |
|---|---|
QTextLine::Leading | 0 |
QTextLine::Trailing | 1 |
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.