QTextLine Class
Die Klasse „QTextLine“ stellt eine Textzeile innerhalb eines „ QTextLayout “ dar. Mehr...
| Header: | #include <QTextLine> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Gui) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
| qmake: | QT += gui |
- Liste aller Mitglieder, einschließlich geerbter Mitglieder
- QTextLine ist Teil der Rich-Text-Verarbeitungs-APIs.
Hinweis: Alle Funktionen dieser Klasse sind reentrant.
Öffentliche Typen
| enum | CursorPosition { CursorBetweenCharacters, CursorOnCharacter } |
| enum | Edge { Leading, Trailing } |
Öffentliche Funktionen
| 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 |
Ausführliche Beschreibung
Eine Textzeile wird in der Regel mit der Funktion „ QTextLayout::createLine()“ erstellt.
Nach der Erstellung kann die Zeile mit den Funktionen „ setLineWidth()“ oder „ setNumColumns()“ gefüllt werden. Eine Zeile verfügt über eine Reihe von Attributen, darunter das von ihr eingenommene Rechteck („ rect()“), ihre Koordinaten („ x()“ und „ y()“), ihre „ textLength()“, „ width()“ und „ naturalTextWidth()“ sowie ihre „ ascent()“ und „ descent()“ relativ zum Text. Die Position des Cursors in Bezug auf die Zeile kann über ` cursorToX()` abgerufen werden, die umgekehrte Position über ` xToCursor()`. Eine Zeile kann mit ` setPosition()` verschoben werden.
Dokumentation zu Mitgliedstypen
enum QTextLine::CursorPosition
| Konstante | Wert |
|---|---|
QTextLine::CursorBetweenCharacters | 0 |
QTextLine::CursorOnCharacter | 1 |
enum QTextLine::Edge
| Konstante | Wert |
|---|---|
QTextLine::Leading | 0 |
QTextLine::Trailing | 1 |
Dokumentation zu Member-Funktionen
QTextLine::QTextLine()
Erzeugt eine ungültige Zeile.
qreal QTextLine::ascent() const
Gibt den Anstieg der Linie zurück.
Siehe auch „ descent()“ und „ height()“.
qreal QTextLine::cursorToX(int *cursorPos, QTextLine::Edge edge = Leading) const
Wandelt die Cursorposition cursorPos in die entsprechende x-Position innerhalb der Zeile um, wobei die edge berücksichtigt wird.
Ist cursorPos keine gültige Cursorposition, wird stattdessen die nächstgelegene gültige Cursorposition verwendet, und cursorPos wird so geändert, dass er auf diese gültige Cursorposition zeigt.
Siehe auch xToCursor().
qreal QTextLine::cursorToX(int cursorPos, QTextLine::Edge edge = Leading) const
Dies ist eine überladene Funktion.
qreal QTextLine::descent() const
Gibt den Abschnitt der Zeile zurück.
Siehe auch ascent() und height().
void QTextLine::draw(QPainter *painter, const QPointF &position) const
Zeichnet eine Linie auf der angegebenen Koordinaten painter, und zwar an der angegebenen Position position.
[since 6.5] QList<QGlyphRun> QTextLine::glyphRuns(int from, int length, QTextLayout::GlyphRunRetrievalFlags retrievalFlags) const
Gibt die Glyphenindizes und -positionen für alle Glyphen in diesem „ QTextLine “ für Zeichen im Bereich zurück, der durch „ from “ und „ length “ definiert ist. Der Index „ from “ bezieht sich relativ auf den Anfang des Textes im übergeordneten „ QTextLayout “, und der Bereich muss innerhalb des Bereichs „ QTextLine “ liegen, wie er durch die Funktionen „ textStart()“ und „ textLength()“ angegeben wird.
Die Eigenschaft „ retrievalFlags “ legt fest, welche Eigenschaften des „ QGlyphRun “ aus dem Layout abgerufen werden. Um Zuweisungen und Speicherverbrauch zu minimieren, sollte diese so eingestellt werden, dass nur die Eigenschaften einbezogen werden, auf die Sie später zugreifen müssen.
Ist ` from ` negativ, wird standardmäßig ` textStart()` verwendet, und ist ` length ` negativ, wird standardmäßig der Rückgabewert von ` textLength()` verwendet.
Diese Funktion wurde in Qt 6.5 eingeführt.
Siehe auch QTextLayout::glyphRuns().
QList<QGlyphRun> QTextLine::glyphRuns(int from = -1, int length = -1) const
Gibt die Glyphenindizes und -positionen für alle Glyphen in diesem „ QTextLine “ für Zeichen im Bereich zurück, der durch „ from “ und „ length “ definiert ist. Der Index „ from “ bezieht sich relativ auf den Anfang des Textes im übergeordneten „ QTextLayout “, und der Bereich muss innerhalb des Bereichs „ QTextLine “ liegen, wie er durch die Funktionen „ textStart()“ und „ textLength()“ vorgegeben ist.
Ist „ from “ negativ, wird standardmäßig „ textStart()“ verwendet, und ist „ length “ negativ, wird standardmäßig der Rückgabewert von „ textLength()“ verwendet.
Hinweis: Dies entspricht dem Aufruf von `glyphRuns(from, length, QTextLayout::GlyphRunRetrievalFlag::GlyphIndexes | QTextLayout::GlyphRunRetrievalFlag::GlyphPositions)`.
Dies ist eine überladene Funktion.
Siehe auch ` QTextLayout::glyphRuns()`.
qreal QTextLine::height() const
Gibt die Höhe der Zeile zurück. Diese entspricht ascent() + descent(), wenn der Vorsatz nicht berücksichtigt wird. Wird der Vorsatz berücksichtigt, entspricht dies ascent() + descent() + leading().
Siehe auch ascent(), descent(), leading() und setLeadingIncluded().
qreal QTextLine::horizontalAdvance() const
Gibt den horizontalen Abstand des Textes zurück. Der Abstand des Textes ist die Entfernung von seiner Position bis zur nächsten Position, an der Text normalerweise gezeichnet würde.
Indem Sie den Abstand zur Position der Textzeile addieren und diesen Wert als Position für eine zweite Textzeile verwenden, können Sie die beiden Zeilen nebeneinander positionieren, ohne dass dazwischen Lücken entstehen.
bool QTextLine::isValid() const
Gibt „ true “ zurück, wenn diese Textzeile gültig ist; andernfalls wird „ false “ zurückgegeben.
qreal QTextLine::leading() const
Gibt den Zeilenabstand zurück.
Siehe auch ascent(), descent() und height().
bool QTextLine::leadingIncluded() const
Gibt „ true “ zurück, wenn der positive Zeilenabstand in die Zeilenhöhe einbezogen wird; andernfalls wird „ false “ zurückgegeben.
Standardmäßig wird der Zeilenabstand nicht berücksichtigt.
Siehe auch ` setLeadingIncluded()`.
int QTextLine::lineNumber() const
Gibt die Position der Zeile in der Text-Engine zurück.
QRectF QTextLine::naturalTextRect() const
Gibt das Rechteck zurück, das von der Linie abgedeckt wird.
qreal QTextLine::naturalTextWidth() const
Gibt die Breite der Zeile zurück, die vom Text eingenommen wird. Diese ist immer <= width() und entspricht der minimalen Breite, die von layout() verwendet werden könnte, ohne die Zeilenumbruchposition zu verändern.
QPointF QTextLine::position() const
Gibt die Position der Zeile relativ zur Position des Textlayouts zurück.
Siehe auch „ setPosition()“.
QRectF QTextLine::rect() const
Gibt das Begrenzungsrechteck der Linie zurück.
Siehe auch x(), y(), textLength() und width().
void QTextLine::setLeadingIncluded(bool included)
Bezieht den positiven Zeilenabstand in die Zeilenhöhe mit ein, wenn „ included “ auf „true“ gesetzt ist; andernfalls wird der Zeilenabstand nicht berücksichtigt.
Standardmäßig wird kein Zeilenabstand berücksichtigt.
Beachten Sie, dass ein negativer Zeilenabstand ignoriert wird; er muss im Code bei der Verarbeitung der Textzeilen berücksichtigt werden, indem die Zeilen überlappen.
Siehe auch leadingIncluded().
void QTextLine::setLineWidth(qreal width)
Zeigt die Zeile mit dem angegebenen ` width` an. Die Zeile wird ab ihrer Startposition mit so vielen Zeichen gefüllt, wie in die Zeile passen. Falls der Text am Zeilenende nicht aufgeteilt werden kann, wird die Zeile mit zusätzlichen Zeichen bis zum nächsten Leerzeichen oder bis zum Ende des Textes aufgefüllt.
void QTextLine::setNumColumns(int numColumns)
Füllt die Zeile aus. Die Zeile wird ab ihrer Startposition mit so vielen Zeichen gefüllt, wie durch ` numColumns` angegeben sind. Falls der Text nicht in Zeichen von ` numColumns ` aufgeteilt werden kann, wird die Zeile mit so vielen Zeichen bis zum nächsten Leerzeichen oder bis zum Ende des Textes gefüllt.
void QTextLine::setNumColumns(int numColumns, qreal alignmentWidth)
Richtet die Zeile aus. Die Zeile wird ab ihrer Startposition mit so vielen Zeichen gefüllt, wie durch ` numColumns` angegeben sind. Falls der Text nicht bis zur Länge ` numColumns ` aufgeteilt werden kann, wird die Zeile mit so vielen Zeichen bis zum nächsten Leerzeichen oder bis zum Ende des Textes gefüllt. Der angegebene Wert ` alignmentWidth ` dient als Referenzbreite für die Ausrichtung.
void QTextLine::setPosition(const QPointF &pos)
Verschiebt die Linie an die Position pos.
Siehe auch position().
int QTextLine::textLength() const
Gibt die Länge des Textes in der Zeile zurück.
Siehe auch „ naturalTextWidth()“.
int QTextLine::textStart() const
Gibt den Zeilenanfang ab dem Anfang der an die Funktion ` QTextLayout` übergebenen Zeichenkette zurück.
qreal QTextLine::width() const
Gibt die Breite der Zeile zurück, wie sie durch die Funktion layout() festgelegt wurde.
Siehe auch naturalTextWidth(), x(), y(), textLength() und rect().
qreal QTextLine::x() const
Gibt die x-Position der Zeile zurück.
Siehe auch rect(), y(), textLength() und width().
int QTextLine::xToCursor(qreal x, QTextLine::CursorPosition cpos = CursorBetweenCharacters) const
Konvertiert die x-Koordinate x in die nächstgelegene passende Cursorposition, abhängig vom Typ der Cursorposition cpos. Beachten Sie, dass die resultierende Cursorposition möglicherweise Text aus dem Vorbearbeitungsbereich enthält.
Siehe auch cursorToX().
qreal QTextLine::y() const
Gibt die y-Position der Zeile zurück.
Siehe auch x(), rect(), textLength() und 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.