Auf dieser Seite

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

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

KonstanteWert
QTextLine::CursorBetweenCharacters0
QTextLine::CursorOnCharacter1

enum QTextLine::Edge

KonstanteWert
QTextLine::Leading0
QTextLine::Trailing1

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.