QTextLine Class
Die Klasse QTextLine repräsentiert eine Textzeile innerhalb eines QTextLayout. Mehr...
Kopfzeile: | #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 Processing APIs.
Hinweis: Alle Funktionen in 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 |
Detaillierte Beschreibung
Eine Textzeile wird normalerweise mit QTextLayout::createLine() erzeugt.
Nach der Erstellung kann die Zeile mit den Funktionen setLineWidth() oder setNumColumns() gefüllt werden. Eine Zeile hat eine Reihe von Attributen, darunter das Rechteck, das sie einnimmt, 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 ist über cursorToX() und seine Umkehrung über xToCursor() verfügbar. Eine Zeile kann mit setPosition() verschoben werden.
Dokumentation der Mitgliedstypen
enum QTextLine::CursorPosition
Konstante | Wert |
---|---|
QTextLine::CursorBetweenCharacters | 0 |
QTextLine::CursorOnCharacter | 1 |
enum QTextLine::Edge
Konstante | Wert |
---|---|
QTextLine::Leading | 0 |
QTextLine::Trailing | 1 |
Dokumentation der Mitgliedsfunktionen
QTextLine::QTextLine()
Erzeugt eine ungültige Zeile.
qreal QTextLine::ascent() const
Gibt die Steigung 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 edge berücksichtigt wird.
Wenn cursorPos keine gültige Cursorposition ist, wird stattdessen die nächstgelegene gültige Cursorposition verwendet, und cursorPos wird so geändert, dass sie 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 das Gefälle der Linie zurück.
Siehe auch ascent() und height().
void QTextLine::draw(QPainter *painter, const QPointF &position) const
Zeichnet eine Linie auf der angegebenen painter an der angegebenen position.
[since 6.5]
QList<QGlyphRun> QTextLine::glyphRuns(int from, int length, QTextLayout::GlyphRunRetrievalFlags retrievalFlags) const
Liefert die Glyphenindizes und -positionen für alle Glyphen in diesem QTextLine für Zeichen in dem durch from und length definierten Bereich. Der Index from ist relativ zum Anfang des Textes in QTextLayout, und der Bereich muss innerhalb des Bereichs von QTextLine liegen, wie durch die Funktionen textStart() und textLength() angegeben.
Die retrievalFlags gibt an, welche Eigenschaften des QGlyphRun aus dem Layout abgerufen werden sollen. Um die Zuweisungen und den Speicherverbrauch zu minimieren, sollte dieser Wert so gesetzt werden, dass er nur die Eigenschaften enthält, auf die Sie später zugreifen müssen.
Wenn from negativ ist, wird standardmäßig textStart() verwendet, und wenn length negativ ist, 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
Dies ist eine überladene Funktion.
Gibt die Glyphenindizes und -positionen für alle Glyphen in diesem QTextLine für Zeichen in dem durch from und length definierten Bereich zurück. Der Index from bezieht sich auf den Anfang des Textes in QTextLayout, und der Bereich muss innerhalb des Bereichs von QTextLine liegen, wie durch die Funktionen textStart() und textLength() angegeben.
Wenn from negativ ist, wird standardmäßig textStart() verwendet, und wenn length negativ ist, wird standardmäßig der Rückgabewert von textLength() verwendet.
Hinweis: Dies entspricht dem Aufruf von glyphRuns(from, length, QTextLayout::GlyphRunRetrievalFlag::GlyphIndexes | QTextLayout::GlyphRunRetrievalFlag::GlyphPositions).
Siehe auch QTextLayout::glyphRuns().
qreal QTextLine::height() const
Gibt die Höhe der Zeile zurück. Dies ist gleich ascent() + descent(), wenn der Zeilenabstand nicht berücksichtigt wird. Wenn der Zeilenvorschub enthalten ist, 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 der Abstand zwischen seiner Position und der nächsten Position, an der der Text natürlicherweise gezeichnet werden würde.
Wenn Sie den Abstand zur Position der Textzeile addieren und dies als Position einer zweiten Textzeile verwenden, können Sie die beiden Zeilen ohne Lücken dazwischen nebeneinander positionieren.
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 Vorspann der Zeile zurück.
Siehe auch ascent(), descent(), und height().
bool QTextLine::leadingIncluded() const
Gibt true
zurück, wenn ein positiver Zeilenvorschub in der Zeilenhöhe enthalten ist; 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 Textmaschine zurück.
QRectF QTextLine::naturalTextRect() const
Gibt das Rechteck zurück, das von der Linie überdeckt wird.
qreal QTextLine::naturalTextWidth() const
Gibt die Breite der Zeile zurück, die von Text belegt ist. Dies ist immer <= zu width() und ist die Mindestbreite, die von layout() verwendet werden kann, ohne die Position des Zeilenumbruchs 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 einen positiven Zeilenabstand in die Zeilenhöhe ein, wenn included wahr ist; andernfalls wird der Zeilenabstand nicht berücksichtigt.
Standardmäßig wird der Zeilenabstand nicht berücksichtigt.
Beachten Sie, dass ein negativer Zeilenabstand ignoriert wird; er muss im Code, der die Textzeilen verwendet, behandelt werden, indem man die Zeilen überlappen lässt.
Siehe auch leadingIncluded().
void QTextLine::setLineWidth(qreal width)
Legt die Zeile mit der angegebenen width an. Die Zeile wird von ihrer Startposition aus mit so vielen Zeichen gefüllt, wie in die Zeile passen. Kann der Text am Zeilenende nicht aufgeteilt werden, wird er mit zusätzlichen Zeichen bis zum nächsten Leerzeichen oder zum Ende des Textes aufgefüllt.
void QTextLine::setNumColumns(int numColumns)
Legt die Zeile aus. Die Zeile wird ab ihrer Startposition mit so vielen Zeichen gefüllt, wie durch numColumns angegeben sind. Wenn der Text nicht bis numColumns aufgeteilt werden kann, wird die Zeile mit so vielen Zeichen wie möglich bis zum nächsten Leerzeichen oder zum Ende des Textes aufgefüllt.
void QTextLine::setNumColumns(int numColumns, qreal alignmentWidth)
Legt 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 numColumns aufgeteilt werden kann, wird die Zeile mit so vielen Zeichen wie möglich bis zum nächsten Leerzeichen oder zum Ende des Textes aufgefüllt. Die angegebene alignmentWidth wird als Referenzbreite für die Ausrichtung verwendet.
void QTextLine::setPosition(const QPointF &pos)
Verschiebt die Zeile 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 Anfang der Zeile ab dem Anfang der an QTextLayout übergebenen Zeichenkette zurück.
qreal QTextLine::width() const
Gibt die Breite der Zeile zurück, wie sie von der Funktion layout() angegeben 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 Position des Ergebniscursors den möglichen Text des Pre-Edit-Bereichs einschließt.
Siehe auch cursorToX().
qreal QTextLine::y() const
Gibt die y-Position der Linie zurück.
Siehe auch x(), rect(), textLength(), und width().
© 2025 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.