QFontMetrics Class
Die Klasse „QFontMetrics“ liefert Informationen zu Schriftartenmetriken. Mehr...
| Kopfzeile: | #include <QFontMetrics> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Gui) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
| qmake: | QT += gui |
- Liste aller Mitglieder, einschließlich geerbter Mitglieder
- QFontMetrics gehört zu den Zeichenklassen und implizit gemeinsam genutzten Klassen.
Hinweis: Alle Funktionen dieser Klasse sind reentrant.
Öffentliche Funktionen
| QFontMetrics(const QFont &font) | |
| QFontMetrics(const QFont &font, const QPaintDevice *paintdevice) | |
| QFontMetrics(const QFontMetrics &fm) | |
| QFontMetrics(QFontMetrics &&) | |
| ~QFontMetrics() | |
| int | ascent() const |
| int | averageCharWidth() const |
| QRect | boundingRect(QChar ch) const |
| QRect | boundingRect(const QString &text) const |
(since 6.3) QRect | boundingRect(const QString &text, const QTextOption &option) const |
| QRect | boundingRect(const QRect &rect, int flags, const QString &text, int tabStops = 0, int *tabArray = nullptr) const |
| QRect | boundingRect(int x, int y, int width, int height, int flags, const QString &text, int tabStops = 0, int *tabArray = nullptr) const |
| int | capHeight() const |
| int | descent() const |
| QString | elidedText(const QString &text, Qt::TextElideMode mode, int width, int flags = 0) const |
| qreal | fontDpi() const |
| int | height() const |
(since 6.3) int | horizontalAdvance(const QString &text, const QTextOption &option) const |
| int | horizontalAdvance(const QString &text, int len = -1) const |
| int | horizontalAdvance(QChar ch) const |
| bool | inFont(QChar ch) const |
| bool | inFontUcs4(uint ucs4) const |
| int | leading() const |
| int | leftBearing(QChar ch) const |
| int | lineSpacing() const |
| int | lineWidth() const |
| int | maxWidth() const |
| int | minLeftBearing() const |
| int | minRightBearing() const |
| int | overlinePos() const |
| int | rightBearing(QChar ch) const |
| QSize | size(int flags, const QString &text, int tabStops = 0, int *tabArray = nullptr) const |
| int | strikeOutPos() const |
| void | swap(QFontMetrics &other) |
| QRect | tightBoundingRect(const QString &text) const |
(since 6.3) QRect | tightBoundingRect(const QString &text, const QTextOption &option) const |
| int | underlinePos() const |
| int | xHeight() const |
| bool | operator!=(const QFontMetrics &other) const |
| QFontMetrics & | operator=(QFontMetrics &&other) |
| QFontMetrics & | operator=(const QFontMetrics &fm) |
| bool | operator==(const QFontMetrics &other) const |
Ausführliche Beschreibung
Die Funktionen von „QFontMetrics“ berechnen die Größe von Zeichen und Zeichenfolgen für eine bestimmte Schriftart. Die Klasse ist eine auf Ganzzahlen basierende Version von „ QFontMetricsF “ und rundet alle Zahlen auf die nächste Ganzzahl. Das bedeutet, dass die Ergebnisse bei Schriftarten mit gebrochenen Metriken ungenau sind. In den meisten Fällen sollte stattdessen „ QFontMetricsF “ verwendet werden.
Es gibt drei Möglichkeiten, ein `QFontMetrics`-Objekt zu erstellen:
- Durch den Aufruf des QFontMetrics-Konstruktors mit einem ` QFont ` wird ein Schriftart-Metrik-Objekt für eine bildschirmkompatible Schriftart erstellt, d. h., die Schriftart darf keine Druckerschriftart sein. Wird die Schriftart später geändert, wird das Schriftart-Metrik-Objekt nicht aktualisiert.
(Hinweis: Wenn Sie eine Druckerschrift verwenden, sind die zurückgegebenen Werte möglicherweise ungenau. Da Druckerschriften nicht immer verfügbar sind, wird die am besten passende Bildschirmschrift verwendet, wenn eine Druckerschrift angegeben wird.)
- QWidget::fontMetrics() gibt die Schriftmetriken für die Schriftart eines Widgets zurück. Dies entspricht QFontMetrics(widget->font()). Wird die Schriftart des Widgets später geändert, wird das Schriftmetrikobjekt nicht aktualisiert.
- QPainter::fontMetrics() gibt die Schriftartmetriken für die aktuelle Schriftart eines „Painter“ zurück. Wird die Schriftart des „Painter“ später geändert, wird das Schriftartmetrik-Objekt nicht aktualisiert.
Nach der Erstellung stellt das Objekt Funktionen bereit, um auf die einzelnen Metriken der Schriftart, ihrer Zeichen sowie auf die in dieser Schriftart gerenderten Zeichenfolgen zuzugreifen.
Es gibt mehrere Funktionen, die auf die Schriftart angewendet werden können: „ ascent()“, „ descent()“, „ height()“, „ leading()“ und „ lineSpacing()“ geben die grundlegenden Größeneigenschaften der Schriftart zurück. Die Funktionen „ underlinePos()“, „ overlinePos()“, „ strikeOutPos()“ und „ lineWidth()“ geben die Eigenschaften der Linie zurück, die die Zeichen unterstreicht, überstreicht oder durchstreicht. Diese Funktionen sind alle schnell.
Es gibt außerdem einige Funktionen, die auf die Menge der Glyphen in der Schriftart angewendet werden: ` minLeftBearing()`, ` minRightBearing()` und ` maxWidth()`. Diese sind zwangsläufig langsam, und wir empfehlen, sie nach Möglichkeit zu vermeiden.
Für jedes Zeichen können Sie dessen „ horizontalAdvance()“, „ leftBearing()“ und „ rightBearing()“ abrufen und mit „ inFont()“ feststellen, ob es in der Schriftart enthalten ist. Sie können das Zeichen auch als Zeichenkette behandeln und die Zeichenkettenfunktionen darauf anwenden.
Zu den Zeichenfolgenfunktionen gehören „ horizontalAdvance()“, die die Zeichenabstandbreite einer Zeichenfolge in Pixeln (oder Punkten für einen Drucker) zurückgibt, „ boundingRect()“, die ein Rechteck zurückgibt, das groß genug ist, um die gerenderte Zeichenfolge aufzunehmen, und „ size()“, die die Größe dieses Rechtecks zurückgibt.
QFontMetrics verfügt über zwei verschiedene Funktionen zur Berechnung der Begrenzungen einer Zeichenkette, die jeweils mehrere Überladungen aufweisen: ` boundingRect()` und ` tightBoundingRect()`. Wenn ein präzises Begrenzungsrechteck benötigt wird, sollte ` tightBoundingRect()` bevorzugt werden. Diese Funktion misst jedes Glyph einzeln, um ein Begrenzungsrechteck zurückzugeben, das den gerenderten Text exakt umschließt. Je nach Plattform gibt die Funktion „ boundingRect()“ möglicherweise nur ungefähre Begrenzungswerte zurück, erfordert dafür aber weniger Rechenaufwand.
Hinweis: Die Zeichenabstandsbreite kann von der Breite des tatsächlich gerenderten Texts abweichen. Sie bezieht sich auf den Abstand vom Ursprung der Zeichenkette bis zu der Stelle, an der zusätzliche Zeichen angehängt würden. Da Text Überhänge (beispielsweise bei einer kursiven Schriftart) oder Abstände zwischen den Zeichen aufweisen kann, kann die Zeichenabstandbreite entweder kleiner oder größer sein als die tatsächliche Darstellung des Textes. Dies wird als rechter Rand des Textes bezeichnet.
Beispiel:
QFont font("times", 24);
QFontMetrics fm(font);
int pixelsWide = fm.horizontalAdvance("What's the advance width of this text?");
int pixelsHigh = fm.height();Siehe auch QFont, QFontInfo und QFontDatabase.
Dokumentation zu Mitgliedsfunktionen
[explicit] QFontMetrics::QFontMetrics(const QFont &font)
Erstellt ein Objekt mit Schriftmetriken für font.
Die Schriftartmetriken sind mit dem „paintdevice“ kompatibel, das zur Erstellung von ` font` verwendet wurde.
Das Schriftartmetrik-Objekt enthält die Informationen zu der Schriftart, die zum Zeitpunkt der Erstellung an den Konstruktor übergeben wurde, und wird nicht aktualisiert, wenn die Attribute der Schriftart später geändert werden.
Verwenden Sie `QFontMetrics(const QFont &, QPaintDevice *)`, um die Schriftartmetriken abzurufen, die mit einem bestimmten Zeichen-Gerät kompatibel sind.
QFontMetrics::QFontMetrics(const QFont &font, const QPaintDevice *paintdevice)
Erstellt ein Objekt mit Schriftmetriken für font und paintdevice.
Die Schriftartmetriken sind mit dem übergebenen „paintdevice“ kompatibel. Wenn „ paintdevice “ gleich „ nullptr “ ist, sind die Metriken bildschirmkompatibel, d. h., es handelt sich um die Metriken, die Sie erhalten, wenn Sie die Schriftart zum Zeichnen von Text auf einem „ widgets “ oder „ pixmaps “ verwenden, nicht auf einem „ QPicture “ oder „ QPrinter “.
Das Schriftart-Metrik-Objekt enthält die Informationen zu der Schriftart, die zum Zeitpunkt ihrer Erstellung im Konstruktor übergeben wurde, und wird nicht aktualisiert, wenn die Attribute der Schriftart später geändert werden.
QFontMetrics::QFontMetrics(const QFontMetrics &fm)
Erstellt eine Kopie von „ fm “.
[constexpr noexcept default] QFontMetrics::QFontMetrics(QFontMetrics &&)
Erstellt eine Instanz von „ QFontMetrics “ mithilfe der Move-Konstruktion.
[noexcept] QFontMetrics::~QFontMetrics()
Löscht das Schriftart-Metrik-Objekt und gibt alle zugewiesenen Ressourcen frei.
int QFontMetrics::ascent() const
Gibt die Höhe der Schriftart zurück.
Die Höhe einer Schriftart ist der Abstand von der Grundlinie bis zur höchsten Position, bis zu der sich Zeichen erstrecken. In der Praxis weichen einige Schriftdesigner von dieser Regel ab, z. B. wenn sie mehr als ein Akzentzeichen über einem Zeichen platzieren oder um einem bestimmten Zeichen Platz zu schaffen, sodass es möglich ist (wenn auch selten), dass dieser Wert zu klein ausfällt.
Siehe auch „ descent()“.
int QFontMetrics::averageCharWidth() const
Gibt die durchschnittliche Breite der Glyphen in der Schriftart zurück.
QRect QFontMetrics::boundingRect(QChar ch) const
Gibt das Rechteck zurück, das mit Tinte bedeckt wäre, wenn die Zeichen ch en am Ursprung des Koordinatensystems gezeichnet würden.
Beachten Sie, dass sich das Begrenzungsrechteck links von (0, 0) erstrecken kann (z. B. bei kursiven Schriftarten) und dass die Textausgabe alle Pixel im Begrenzungsrechteck abdecken kann. Bei einem Leerzeichen ist das Rechteck in der Regel leer.
Beachten Sie, dass sich das Rechteck in der Regel sowohl über als auch unter der Grundlinie erstreckt.
Warnung: Die Breite des zurückgegebenen Rechtecks entspricht nicht der Vorlaufbreite des Zeichens. Verwenden Sie stattdessen `boundingRect(const QString &)` oder ` horizontalAdvance()`.
Siehe auch ` horizontalAdvance()`.
QRect QFontMetrics::boundingRect(const QString &text) const
Gibt das Begrenzungsrechteck der Zeichen in der durch ` text` angegebenen Zeichenkette zurück. Das Begrenzungsrechteck umfasst immer mindestens die Pixel, die der Text abdecken würde, wenn er an der Position (0, 0) gezeichnet würde.
Beachten Sie, dass sich das Begrenzungsrechteck möglicherweise nach links über den Punkt (0, 0) hinaus erstreckt, z. B. bei kursiven Schriftarten, und dass die Breite des zurückgegebenen Rechtecks von dem Wert abweichen kann, den die Methode „ horizontalAdvance()“ zurückgibt.
Wenn Sie die Abstandsbreite der Zeichenkette ermitteln möchten (um mehrere Zeichenketten nebeneinander anzuordnen), verwenden Sie stattdessen horizontalAdvance().
Zeilenumbruchzeichen werden als normale Zeichen und nicht als Zeilenumbrüche verarbeitet.
Die Höhe des Begrenzungsrechtecks ist mindestens so groß wie der von ` height()` zurückgegebene Wert.
Siehe auch „ horizontalAdvance()“, „ height()“, „ QPainter::boundingRect()“ und „ tightBoundingRect()“.
[since 6.3] QRect QFontMetrics::boundingRect(const QString &text, const QTextOption &option) const
Gibt das Begrenzungsrechteck der Zeichen in der durch ` text ` angegebenen Zeichenkette zurück, deren Layout mit ` option` festgelegt wurde. Das Begrenzungsrechteck umfasst immer mindestens die Pixel, die der Text abdecken würde, wenn er an der Position (0, 0) gezeichnet würde.
Beachten Sie, dass sich das Begrenzungsrechteck möglicherweise über den Punkt (0, 0) hinaus nach links erstreckt, z. B. bei kursiven Schriftarten, und dass die Breite des zurückgegebenen Rechtecks von dem Wert abweichen kann, den die Methode ` horizontalAdvance()` zurückgibt.
Wenn Sie die Vorlaufbreite der Zeichenkette ermitteln möchten (um mehrere Zeichenketten nebeneinander anzuordnen), verwenden Sie stattdessen horizontalAdvance().
Zeilenumbruchzeichen werden als normale Zeichen und nicht als Zeilenumbrüche verarbeitet.
Die Höhe des Begrenzungsrechtecks ist mindestens so groß wie der von ` height()` zurückgegebene Wert.
Diese Funktion wurde in Qt 6.3 eingeführt.
Siehe auch horizontalAdvance(), height(), QPainter::boundingRect() und tightBoundingRect().
QRect QFontMetrics::boundingRect(const QRect &rect, int flags, const QString &text, int tabStops = 0, int *tabArray = nullptr) const
Gibt das Begrenzungsrechteck der Zeichen in der durch ` text` angegebenen Zeichenkette zurück; dabei handelt es sich um die Pixelmenge, die der Text abdecken würde, wenn er an der Position (0, 0) gezeichnet würde. Die Zeichnung und damit auch das Begrenzungsrechteck sind auf das Rechteck ` rect` beschränkt.
Das Argument ` flags ` ist das bitweise ODER der folgenden Flags:
- Qt::AlignLeft Richtet den Text am linken Rand aus, außer bei Arabisch und Hebräisch, wo er am rechten Rand ausgerichtet wird.
- Qt::AlignRight Richtet den Text am rechten Rand aus, außer bei Arabisch und Hebräisch, wo er am linken Rand ausgerichtet wird.
- Qt::AlignJustify Erzeugt einen Blocksatz.
- Qt::AlignHCenter Zentriert den Text horizontal.
- Qt::AlignTop Richtet am oberen Rand aus.
- Qt::AlignBottom wird am unteren Rand ausgerichtet.
- Qt::AlignVCenter Zentriert vertikal
- Qt::AlignCenter (==
Qt::AlignHCenter | Qt::AlignVCenter) - Qt::TextSingleLine Ignoriert Zeilenumbruchzeichen im Text.
- Qt::TextExpandTabs erweitert Tabulatoren (siehe unten)
- Qt::TextShowMnemonic interpretiert „&x“ als x, d. h. unterstrichen.
- Qt::TextWordWrap passt den Text an die Größe des Rechtecks an.
Qt::Horizontal Die Ausrichtung ist standardmäßig auf „ Qt::AlignLeft “ und die vertikale Ausrichtung auf „ Qt::AlignTop “ eingestellt.
Sind mehrere der Flags für die horizontale oder mehrere der Flags für die vertikale Ausrichtung gesetzt, ist das Ergebnis der Ausrichtung undefiniert.
Wenn „ Qt::TextExpandTabs “ in „ flags “ gesetzt ist, gilt Folgendes: Ist „ tabArray “ ungleich Null, gibt es eine mit Null abgeschlossene Folge von Pixelpositionen für Tabulatoren an; andernfalls wird, sofern „ tabStops “ ungleich Null ist, dieser Wert als Tabulatorabstand (in Pixeln) verwendet.
Beachten Sie, dass sich das Begrenzungsrechteck nach links über (0, 0) hinaus erstrecken kann, z. B. bei kursiven Schriftarten, und dass die Textausgabe alle Pixel im Begrenzungsrechteck abdecken kann.
Zeilenumbruchzeichen werden als Zeilenumbrüche verarbeitet.
Trotz der unterschiedlichen tatsächlichen Zeichenhöhen sind die Höhen der Begrenzungsrechtecke von „Yes“ und „yes“ identisch.
Dies ist eine überladene Funktion.
Siehe auch horizontalAdvance(), QPainter::boundingRect() und Qt::Alignment.
QRect QFontMetrics::boundingRect(int x, int y, int width, int height, int flags, const QString &text, int tabStops = 0, int *tabArray = nullptr) const
Gibt das Begrenzungsrechteck für den angegebenen „ text “ innerhalb des Rechtecks zurück, das durch die Koordinaten „ x “ und „ y “, „ width “ sowie „ height “ definiert ist.
Wenn Qt::TextExpandTabs in flags gesetzt ist und tabArray ungleich null ist, gibt es eine mit 0 abgeschlossene Folge von Pixelpositionen für Tabulatoren an; andernfalls, wenn tabStops ungleich Null ist, wird es als Tabulatorabstand (in Pixeln) verwendet.
Dies ist eine überladene Funktion.
int QFontMetrics::capHeight() const
Gibt die Großbuchstabenhöhe der Schriftart zurück.
Die Versalhöhe einer Schriftart ist die Höhe eines Großbuchstabens über der Grundlinie. Genauer gesagt handelt es sich dabei um die Höhe von flachen Großbuchstaben – wie beispielsweise H oder I – im Gegensatz zu runden Buchstaben wie O oder spitzen Buchstaben wie A, bei denen es zu einem Überhang kommen kann.
Siehe auch „ ascent()“.
int QFontMetrics::descent() const
Gibt den Abstieg der Schriftart zurück.
Der Abstieg ist der Abstand von der Grundlinie bis zum tiefsten Punkt, bis zu dem sich Zeichen erstrecken. In der Praxis weichen manche Schriftdesigner von dieser Regel ab, z. B. um einem bestimmten Zeichen gerecht zu werden, sodass es möglich ist (wenn auch selten), dass dieser Wert zu klein ist.
Siehe auch „ ascent()“.
QString QFontMetrics::elidedText(const QString &text, Qt::TextElideMode mode, int width, int flags = 0) const
Wenn die Zeichenkette „ text “ breiter ist als „ width “, wird eine gekürzte Version der Zeichenkette zurückgegeben (d. h. eine Zeichenkette, die „...“ enthält). Andernfalls wird die ursprüngliche Zeichenkette zurückgegeben.
Der Parameter „ mode “ legt fest, ob der Text links (z. B. „...tech“), in der Mitte (z. B. „Tr...ch“) oder rechts (z. B. „Trol...“) gekürzt wird.
Der Wert für „ width “ wird in Pixeln und nicht in Zeichen angegeben.
Das Argument „ flags “ ist optional und unterstützt derzeit nur den Wert „ Qt::TextShowMnemonic “.
Die Elidierungsmarkierung folgt auf die „ layoutdirection “. Bei Layouts von rechts nach links befindet sie sich beispielsweise auf der rechten Seite des Textes, wenn die „ mode “ auf „ Qt::ElideLeft “ gesetzt ist, und auf der linken Seite des Textes, wenn die „ mode “ auf „ Qt::ElideRight “ gesetzt ist.
qreal QFontMetrics::fontDpi() const
Gibt die Schriftart-DPI zurück.
int QFontMetrics::height() const
Gibt die Höhe der Schriftart zurück.
Diese entspricht immer der Summe aus ascent() unddescent().
Siehe auch leading() und lineSpacing().
[since 6.3] int QFontMetrics::horizontalAdvance(const QString &text, const QTextOption &option) const
Gibt den horizontalen Versatz in Pixeln für „ text “ zurück, das mit „ option “ angelegt wurde.
Der Versatz ist der Abstand, der zum Zeichnen eines nachfolgenden Zeichens nach „ text “ erforderlich ist.
Diese Funktion wurde in Qt 6.3 eingeführt.
Siehe auch ` boundingRect()`.
int QFontMetrics::horizontalAdvance(const QString &text, int len = -1) const
Gibt den horizontalen Versatz in Pixeln der ersten len Zeichen von text zurück. Ist len negativ (Standard), wird die gesamte Zeichenkette verwendet. Die gesamte Länge von text wird ausgewertet, auch wenn len deutlich kürzer ist.
Dies ist der Abstand, der zum Zeichnen eines nachfolgenden Zeichens nach text geeignet ist.
Siehe auch boundingRect().
int QFontMetrics::horizontalAdvance(QChar ch) const

Gibt den horizontalen Vorschub des Zeichens „ ch “ in Pixeln zurück. Dies ist ein Abstand, der zum Zeichnen eines nachfolgenden Zeichens nach „ ch “ geeignet ist.
Einige der Maße sind in der Abbildung beschrieben. Die zentralen dunklen Rechtecke decken den logischen „horizontalAdvance()“-Wert jedes Zeichens ab. Die äußeren hellen Rechtecke decken die Werte „ leftBearing()“ und „ rightBearing()“ jedes Zeichens ab. Beachten Sie, dass die Abstände des Buchstabens „f“ in dieser speziellen Schriftart beide negativ sind, während die Abstände des Buchstabens „o“ beide positiv sind.
Warnung: Diese Funktion liefert falsche Ergebnisse für arabische Zeichen oder nicht-raumfüllende Zeichen in der Mitte einer Zeichenkette, da die bei der Verarbeitung von Zeichenketten stattfindende Glyphenformung und -positionierung nicht berücksichtigt werden kann. Verwenden Sie bei der Implementierung eines interaktiven Textsteuerelements stattdessen ` QTextLayout `.
Dies ist eine überladene Funktion.
Siehe auch boundingRect().
bool QFontMetrics::inFont(QChar ch) const
Gibt „ true “ zurück, wenn das Zeichen „ ch “ ein gültiges Zeichen in der Schriftart ist; andernfalls wird „ false “ zurückgegeben.
bool QFontMetrics::inFontUcs4(uint ucs4) const
Gibt „ true “ zurück, wenn das in UCS-4/UTF-32 kodierte Zeichen ucs4 ein gültiges Zeichen in der Schriftart ist; andernfalls wird „ false “ zurückgegeben.
int QFontMetrics::leading() const
Gibt den Zeilenabstand der Schriftart zurück.
Dies ist der natürliche Zeilenabstand.
Siehe auch height() und lineSpacing().
int QFontMetrics::leftBearing(QChar ch) const
Gibt die linke Peilung des Zeichens „ ch “ in der Schriftart zurück.
Der linke Versatz ist der Abstand des ganz links liegenden Pixels des Zeichens nach rechts vom logischen Ursprung des Zeichens. Dieser Wert ist negativ, wenn sich die Pixel des Zeichens links vom logischen Ursprung erstrecken.
Eine grafische Darstellung dieser Metrik finden Sie unter „ horizontalAdvance()“.
Siehe auch „ rightBearing()“, „ minLeftBearing()“ und „ horizontalAdvance()“.
int QFontMetrics::lineSpacing() const
Gibt den Abstand von einer Basislinie zur nächsten zurück.
Dieser Wert ist immer gleich leading() +height().
Siehe auch height() und leading().
int QFontMetrics::lineWidth() const
Gibt die Breite der Unterstreichungs- und Durchstreichungslinien zurück, angepasst an die Schriftgröße.
Siehe auch „ underlinePos()“, „ overlinePos()“ und „ strikeOutPos()“.
int QFontMetrics::maxWidth() const
Gibt die Breite des breitesten Zeichens in der Schriftart zurück.
int QFontMetrics::minLeftBearing() const
Gibt den kleinsten linken Peilwinkel der Schriftart zurück.
Dies ist der kleinste „ leftBearing “ (Zeichen) aller Zeichen in der Schriftart.
Beachten Sie, dass diese Funktion bei großen Schriftarten sehr langsam sein kann.
Siehe auch „ minRightBearing()“ und „ leftBearing()“.
int QFontMetrics::minRightBearing() const
Gibt den kleinsten Rechtsversatz der Schriftart zurück.
Dies ist der kleinste „ rightBearing “ (Zeichen) aller Zeichen in der Schriftart.
Beachten Sie, dass diese Funktion bei großen Schriftarten sehr langsam sein kann.
Siehe auch „ minLeftBearing()“ und „ rightBearing()“.
int QFontMetrics::overlinePos() const
Gibt den Abstand von der Grundlinie zu der Stelle zurück, an der eine Oberlinie gezeichnet werden soll.
Siehe auch underlinePos(), strikeOutPos() und lineWidth().
int QFontMetrics::rightBearing(QChar ch) const
Gibt die rechte Ausrichtung des Zeichens „ ch “ in der Schriftart zurück.
Der rechte Versatz ist der Abstand des ganz rechts liegenden Pixels des Zeichens nach links vom logischen Ursprung eines nachfolgenden Zeichens. Dieser Wert ist negativ, wenn sich die Pixel des Zeichens über den „ horizontalAdvance “ () des Zeichens hinaus nach rechts erstrecken.
Eine grafische Darstellung dieser Metrik finden Sie unter „ horizontalAdvance()“.
Siehe auch „ leftBearing()“, „ minRightBearing()“ und „ horizontalAdvance()“.
QSize QFontMetrics::size(int flags, const QString &text, int tabStops = 0, int *tabArray = nullptr) const
Gibt die Größe in Pixeln von „ text “ zurück.
Das Argument ` flags ` ist das bitweise ODER der folgenden Flags:
- Qt::TextSingleLine Ignoriert Zeilenumbruchzeichen.
- Qt::TextExpandTabs Erweitert Tabulatorzeichen (siehe unten).
- Qt::TextShowMnemonic interpretiert „&x“ als x, d. h. unterstrichen.
- Qt::TextWordWrap passt den Text an das Rechteck an.
Wenn „ Qt::TextExpandTabs “ in „ flags “ gesetzt ist, gilt Folgendes: Ist „ tabArray “ nicht null, gibt es eine mit 0 abgeschlossene Folge von Pixelpositionen für Tabulatoren an; andernfalls wird, sofern „ tabStops “ ungleich Null ist, dieser Wert als Tabulatorabstand (in Pixeln) verwendet.
Zeilenumbruchzeichen werden als Zeilenumbrüche verarbeitet.
Trotz der unterschiedlichen tatsächlichen Zeichenhöhen sind die Höhen der Begrenzungsrechtecke von „Yes“ und „yes“ identisch.
Siehe auch boundingRect().
int QFontMetrics::strikeOutPos() const
Gibt den Abstand von der Grundlinie bis zu der Stelle zurück, an der die Durchstreichungslinie gezogen werden soll.
Siehe auch underlinePos(), overlinePos() und lineWidth().
[noexcept] void QFontMetrics::swap(QFontMetrics &other)
Ersetzt diese Instanz der Schriftartmetrik durch „ other “. Dieser Vorgang ist sehr schnell und schlägt niemals fehl.
QRect QFontMetrics::tightBoundingRect(const QString &text) const
Gibt ein eng anliegendes Begrenzungsrechteck um die Zeichen in der durch ` text` angegebenen Zeichenkette zurück. Das Begrenzungsrechteck umfasst immer mindestens die Pixelmenge, die der Text abdecken würde, wenn er an der Position (0, 0) gezeichnet würde.
Beachten Sie, dass sich das Begrenzungsrechteck möglicherweise links von (0, 0) erstrecken kann, z. B. bei kursiven Schriftarten, und dass die Breite des zurückgegebenen Rechtecks von der Breite abweichen kann, die die Methode ` horizontalAdvance()` zurückgibt.
Wenn Sie die Abstandsbreite der Zeichenkette wissen möchten (um mehrere Zeichenketten nebeneinander anzuordnen), verwenden Sie stattdessen horizontalAdvance().
Zeilenumbruchzeichen werden als normale Zeichen und nicht als Zeilenumbrüche verarbeitet.
Siehe auch ` horizontalAdvance()`, ` height()` und ` boundingRect()`.
[since 6.3] QRect QFontMetrics::tightBoundingRect(const QString &text, const QTextOption &option) const
Gibt ein eng anliegendes Begrenzungsrechteck um die Zeichen in der durch ` text ` angegebenen Zeichenkette zurück, deren Layout mit ` option` festgelegt wurde. Das Begrenzungsrechteck umfasst immer mindestens die Pixel, die der Text abdecken würde, wenn er an der Position (0, 0) gezeichnet würde.
Beachten Sie, dass sich das Begrenzungsrechteck möglicherweise nach links über (0, 0) hinaus erstreckt, z. B. bei kursiven Schriftarten, und dass die Breite des zurückgegebenen Rechtecks von dem Wert abweichen kann, den die Methode ` horizontalAdvance()` zurückgibt.
Wenn Sie die Abstandsbreite der Zeichenkette ermitteln möchten (um mehrere Zeichenketten nebeneinander anzuordnen), verwenden Sie stattdessen horizontalAdvance().
Zeilenumbruchzeichen werden als normale Zeichen und nicht als Zeilenumbrüche verarbeitet.
Diese Funktion wurde in Qt 6.3 eingeführt.
Siehe auch ` horizontalAdvance()`, ` height()` und ` boundingRect()`.
int QFontMetrics::underlinePos() const
Gibt den Abstand von der Grundlinie zu der Stelle zurück, an der ein Unterstrich gezeichnet werden soll.
Siehe auch overlinePos(), strikeOutPos() und lineWidth().
int QFontMetrics::xHeight() const
Gibt die „x“-Höhe der Schriftart zurück. Diese entspricht oft, aber nicht immer, der Höhe des Buchstabens „x“.
bool QFontMetrics::operator!=(const QFontMetrics &other) const
Gibt „ true “ zurück, wenn „ other “ nicht mit diesem Objekt übereinstimmt; andernfalls wird „ false “ zurückgegeben.
Zwei Schriftmetriken gelten als gleich, wenn sie aus demselben „ QFont “ erstellt wurden und die Zeichnungsgeräte, für die sie erstellt wurden, als kompatibel gelten.
Siehe auch operator==().
[noexcept] QFontMetrics &QFontMetrics::operator=(QFontMetrics &&other)
other Weist dieser „ QFontMetrics “-Instanz „ “ zu. zu dieser „ “-Instanz.
QFontMetrics &QFontMetrics::operator=(const QFontMetrics &fm)
Weist die Schriftmetriken „ fm “ zu.
bool QFontMetrics::operator==(const QFontMetrics &other) const
Gibt „ true “ zurück, wenn „ other “ mit diesem Objekt übereinstimmt; andernfalls wird „ false “ zurückgegeben.
Zwei Schriftartenmetriken gelten als gleich, wenn sie aus demselben QFont erstellt wurden und die Darstellungsgeräte, für die sie erstellt wurden, als kompatibel gelten.
Siehe auch operator!=().
© 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.