En esta página

QRawFont Class

La clase QRawFont proporciona acceso a una única instancia física de una fuente. Más...

Cabecera: #include <QRawFont>
CMake: find_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake: QT += gui

Tipos Públicos

enum AntialiasingType { PixelAntialiasing, SubPixelAntialiasing }
enum LayoutFlag { SeparateAdvances, KernedAdvances, UseDesignMetrics }
flags LayoutFlags

Funciones Públicas

QRawFont()
QRawFont(const QByteArray &fontData, qreal pixelSize, QFont::HintingPreference hintingPreference = QFont::PreferDefaultHinting)
QRawFont(const QString &fileName, qreal pixelSize, QFont::HintingPreference hintingPreference = QFont::PreferDefaultHinting)
QRawFont(const QRawFont &other)
~QRawFont()
QList<QPointF> advancesForGlyphIndexes(const QList<quint32> &glyphIndexes, QRawFont::LayoutFlags layoutFlags) const
bool advancesForGlyphIndexes(const quint32 *glyphIndexes, QPointF *advances, int numGlyphs, QRawFont::LayoutFlags layoutFlags) const
QList<QPointF> advancesForGlyphIndexes(const QList<quint32> &glyphIndexes) const
bool advancesForGlyphIndexes(const quint32 *glyphIndexes, QPointF *advances, int numGlyphs) const
QImage alphaMapForGlyph(quint32 glyphIndex, QRawFont::AntialiasingType antialiasingType = SubPixelAntialiasing, const QTransform &transform = QTransform()) const
qreal ascent() const
qreal averageCharWidth() const
QRectF boundingRect(quint32 glyphIndex) const
qreal capHeight() const
qreal descent() const
QString familyName() const
(since 6.7) QByteArray fontTable(QFont::Tag tag) const
QByteArray fontTable(const char *tag) const
(since 6.11) quint32 glyphCount() const
bool glyphIndexesForChars(const QChar *chars, int numChars, quint32 *glyphIndexes, int *numGlyphs) const
QList<quint32> glyphIndexesForString(const QString &text) const
(since 6.11) QString glyphName(quint32 glyphIndex) const
QFont::HintingPreference hintingPreference() const
bool isValid() const
qreal leading() const
qreal lineThickness() const
void loadFromData(const QByteArray &fontData, qreal pixelSize, QFont::HintingPreference hintingPreference)
void loadFromFile(const QString &fileName, qreal pixelSize, QFont::HintingPreference hintingPreference)
qreal maxCharWidth() const
QPainterPath pathForGlyph(quint32 glyphIndex) const
qreal pixelSize() const
void setPixelSize(qreal pixelSize)
QFont::Style style() const
QString styleName() const
QList<QFontDatabase::WritingSystem> supportedWritingSystems() const
bool supportsCharacter(QChar character) const
bool supportsCharacter(uint ucs4) const
void swap(QRawFont &other)
qreal underlinePosition() const
qreal unitsPerEm() const
int weight() const
qreal xHeight() const
bool operator!=(const QRawFont &other) const
QRawFont &operator=(const QRawFont &other)
bool operator==(const QRawFont &other) const

Miembros Públicos Estáticos

QRawFont fromFont(const QFont &font, QFontDatabase::WritingSystem writingSystem = QFontDatabase::Any)
size_t qHash(const QRawFont &key, size_t seed = 0)

Descripción Detallada

Nota: QRawFont es una clase de bajo nivel. Para la mayoría de los propósitos QFont es una clase más apropiada.

Normalmente, cuando se presenta texto en una interfaz de usuario, las fuentes exactas utilizadas para representar los caracteres son hasta cierto punto desconocidas. Esto puede ocurrir por varias razones: Por ejemplo, las fuentes físicas reales presentes en el sistema de destino podrían ser inesperadas para los desarrolladores, o el texto podría contener estilos seleccionados por el usuario, tamaños o sistemas de escritura que no son compatibles con la fuente elegida en el código.

Por lo tanto, la clase QFont de Qt representa realmente una consulta de fuentes. Cuando se interpreta el texto, Qt hará todo lo posible para que coincida con la consulta, pero dependiendo del soporte, se pueden utilizar diferentes tipos de letra entre bastidores.

Para la mayoría de los casos de uso, esto es esperado y necesario, ya que minimiza la posibilidad de que el texto en la interfaz de usuario no se pueda mostrar. En algunos casos, sin embargo, puede ser útil un control más directo sobre el proceso. Para estos casos existe la clase QRawFont.

Un objeto QRawFont representa una única instancia física de una fuente determinada en un tamaño de píxel determinado. Es decir, en el caso típico representa un conjunto de tablas de fuentes TrueType u OpenType y utiliza un tamaño de píxel especificado por el usuario para convertir las métricas en unidades lógicas de píxel. Se puede utilizar en combinación con la clase QGlyphRun para dibujar índices de glifos específicos en posiciones concretas, y también tiene accesores a algunos datos relevantes de la fuente física.

QRawFont sólo ofrece soporte para las principales tecnologías de fuentes: GDI y DirectWrite en plataformas Windows, FreeType en plataformas Linux y CoreText en macOS. Para otros back-ends de fuentes, las API estarán deshabilitadas.

QRawFont puede construirse de varias maneras:

  • Puede construirse llamando a QTextLayout::glyphs() o QTextFragment::glyphs(). Los objetos QGlyphs devueltos contendrán objetos QRawFont que representan los tipos de letra utilizados para representar cada parte del texto.
  • Puede construirse pasando un objeto QFont a QRawFont::fromFont(). La función devolverá un objeto QRawFont que representa el tipo de letra que se seleccionará como respuesta a la consulta QFont y el sistema de escritura seleccionado.
  • Puede construirse pasando un nombre de archivo o QByteArray directamente al constructor de QRawFont, o llamando a loadFromFile() o loadFromData(). En este caso, la fuente no se registrará en QFontDatabase, y no estará disponible como parte de la selección normal de fuentes.

QRawFont se considera local al hilo en el que se construye (ya sea usando un constructor, o llamando a loadFromData() o loadFromFile()). El QRawFont no puede ser movido a un hilo diferente, sino que tendrá que ser recreado en el hilo en cuestión.

Nota: Para el requisito de almacenar en caché los índices de glifos y las selecciones de fuentes para el texto estático con el fin de evitar la remodelación y el relayouting en el bucle interno de una aplicación, una mejor opción es la clase QStaticText, ya que optimiza el coste de memoria de la caché y también ofrece la posibilidad de cachés específicas del motor de pintura para una aceleración adicional.

Documentación de los tipos de miembros

enum QRawFont::AntialiasingType

Este enum representa las diferentes formas en que un glifo puede ser rasterizado en la función alphaMapForGlyph().

ConstanteValorDescripción
QRawFont::PixelAntialiasing0Rasterizará midiendo la cobertura de la forma en píxeles enteros. La imagen devuelta contiene los valores alfa de cada píxel basados en la cobertura de la forma del glifo.
QRawFont::SubPixelAntialiasing1Rasterizará midiendo la cobertura de cada subpíxel, devolviendo un valor alfa separado para cada uno de los componentes rojo, verde y azul de cada píxel.

enum QRawFont::LayoutFlag
flags QRawFont::LayoutFlags

Este enum indica a la función advancesForGlyphIndexes() cómo calcular los avances.

ConstanteValorDescripción
QRawFont::SeparateAdvances0Calculará el avance para cada glifo por separado.
QRawFont::KernedAdvances1Aplicará kerning entre glifos adyacentes. Tenga en cuenta que el kerning basado en OpenType GPOS no está soportado actualmente.
QRawFont::UseDesignMetrics2Utiliza métricas de diseño en lugar de métricas hinted ajustadas a la resolución del dispositivo de pintura. Puede combinarse con cualquiera de las opciones anteriores.

El tipo LayoutFlags es un typedef para QFlags<LayoutFlag>. Almacena una combinación OR de valores LayoutFlag.

Documentación de las funciones miembro

QRawFont::QRawFont()

Construye una QRawFont inválida.

QRawFont::QRawFont(const QByteArray &fontData, qreal pixelSize, QFont::HintingPreference hintingPreference = QFont::PreferDefaultHinting)

Construye un QRawFont que representa la fuente contenida en el fontData suministrado para el tamaño (en píxeles) dado por pixelSize, y utilizando la preferencia de sugerencia especificada por hintingPreference.

Nota: Los datos deben contener una fuente TrueType u OpenType.

QRawFont::QRawFont(const QString &fileName, qreal pixelSize, QFont::HintingPreference hintingPreference = QFont::PreferDefaultHinting)

Construye una QRawFont que representa la fuente contenida en el archivo referenciado por fileName para el tamaño (en píxeles) dado por pixelSize, y utilizando la preferencia de sugerencia especificada por hintingPreference.

Nota: El archivo referenciado debe contener una fuente TrueType u OpenType.

QRawFont::QRawFont(const QRawFont &other)

Crea una QRawFont que es una copia de other.

[noexcept] QRawFont::~QRawFont()

Destruye el QRawFont

QList<QPointF> QRawFont::advancesForGlyphIndexes(const QList<quint32> &glyphIndexes, QRawFont::LayoutFlags layoutFlags) const

Devuelve los avances de QRawFont para cada uno de los glyphIndexes en unidades de píxel. Los avances dan la distancia desde la posición de un glifo dado hasta donde debe dibujarse el siguiente glifo para que parezca que los dos glifos no están espaciados. La forma en que se calculan los avances se controla mediante layoutFlags.

Nota: Cuando se solicita KernedAdvances, esta función aplicará las reglas de kerning de la tabla TrueType KERN, si está disponible en la fuente. En muchas fuentes modernas, el kerning se maneja a través de reglas OpenType o reglas AAT, lo que requiere que se aplique un paso de conformado completo. Para obtener los resultados de la conformación completa del texto, utilice QTextLayout.

Véase también QTextLine::horizontalAdvance(), QFontMetricsF::horizontalAdvance() y QTextLayout::glyphRuns().

bool QRawFont::advancesForGlyphIndexes(const quint32 *glyphIndexes, QPointF *advances, int numGlyphs, QRawFont::LayoutFlags layoutFlags) const

Devuelve los avances de QRawFont para cada uno de los glyphIndexes en unidades de píxel. Los avances dan la distancia desde la posición de un glifo dado hasta donde debe dibujarse el siguiente glifo para que parezca que los dos glifos no están espaciados. Los índices de los glifos se dan con el array glyphIndexes mientras que los resultados se devuelven a través de advances, ambos deben tener numGlyphs elementos. La forma en que se calculan los avances se controla mediante layoutFlags.

Nota: Cuando se solicita KernedAdvances, esta función aplicará las reglas de kerning de la tabla TrueType KERN, si está disponible en la fuente. En muchas fuentes modernas, el kerning se maneja a través de reglas OpenType o reglas AAT, lo que requiere que se aplique un paso de conformado completo. Para obtener los resultados de la conformación completa del texto, utilice QTextLayout.

Véase también QTextLine::horizontalAdvance(), QFontMetricsF::horizontalAdvance() y QTextLayout::glyphRuns().

QList<QPointF> QRawFont::advancesForGlyphIndexes(const QList<quint32> &glyphIndexes) const

Devuelve los avances de QRawFont para cada uno de los glyphIndexes en unidades de píxel. Los avances dan la distancia desde la posición de un glifo dado hasta donde debe dibujarse el siguiente glifo para que parezca que los dos glifos no están espaciados. El avance de cada glifo se calcula por separado.

Se trata de una función sobrecargada.

Véase también QTextLine::horizontalAdvance() y QFontMetricsF::horizontalAdvance().

bool QRawFont::advancesForGlyphIndexes(const quint32 *glyphIndexes, QPointF *advances, int numGlyphs) const

Devuelve los avances de QRawFont para cada uno de los glyphIndexes en unidades de píxel. Los avances dan la distancia desde la posición de un glifo dado hasta donde debe dibujarse el siguiente glifo para que parezca que los dos glifos no están espaciados. Los índices de los glifos se dan con el array glyphIndexes mientras que los resultados se devuelven a través de advances, ambos deben tener numGlyphs elementos. El avance de cada glifo se calcula por separado

Se trata de una función sobrecargada.

Véase también QTextLine::horizontalAdvance() y QFontMetricsF::horizontalAdvance().

QImage QRawFont::alphaMapForGlyph(quint32 glyphIndex, QRawFont::AntialiasingType antialiasingType = SubPixelAntialiasing, const QTransform &transform = QTransform()) const

Esta función devuelve una imagen rasterizada del glifo en el glyphIndex dado en la fuente subyacente, utilizando el transform especificado. Si el QRawFont no es válido, esta función devolverá un QImage no válido.

Si la fuente es en color, la imagen resultante contendrá el glifo renderizado en el tamaño de píxel actual. En este caso, se ignorará antialiasingType.

De lo contrario, si antialiasingType se establece en QRawFont::SubPixelAntialiasing, entonces la imagen resultante estará en QImage::Format_RGB32 y los valores RGB de cada píxel representarán las opacidades de subpíxel del píxel en la rasterización del glifo. En caso contrario, la imagen tendrá el formato de QImage::Format_Indexed8 y cada píxel contendrá la opacidad del píxel en la rasterización.

Véase también pathForGlyph() y QPainter::drawGlyphRun().

qreal QRawFont::ascent() const

Devuelve el ascenso de este QRawFont en unidades de píxel.

El ascendente de una fuente es la distancia desde la línea de base hasta la posición más alta a la que se extienden los caracteres. En la práctica, algunos diseñadores de fuentes rompen esta regla, por ejemplo, cuando ponen más de un acento en la parte superior de un carácter, o para acomodar un carácter inusual en un idioma exótico, por lo que es posible (aunque raro) que este valor sea demasiado pequeño.

Véase también QFontMetricsF::ascent().

qreal QRawFont::averageCharWidth() const

Devuelve la anchura media de los caracteres de este QRawFont en unidades de píxel.

Véase también QFontMetricsF::averageCharWidth().

QRectF QRawFont::boundingRect(quint32 glyphIndex) const

Devuelve el rectángulo más pequeño que contiene el glifo con la dirección glyphIndex.

qreal QRawFont::capHeight() const

Devuelve la altura de la tapa de este QRawFont en unidades de píxel.

La altura de remate de una fuente es la altura de una letra mayúscula por encima de la línea de base. En concreto, es la altura de las letras mayúsculas planas, como la H o la I, a diferencia de las letras redondas, como la O, o las letras puntiagudas, como la A, que pueden mostrar un rebasamiento.

Véase también QFontMetricsF::capHeight().

qreal QRawFont::descent() const

Devuelve el descenso de este QRawFont en unidades de píxel.

El descenso es la distancia desde la línea base hasta el punto más bajo al que se extienden los caracteres. En la práctica, algunos diseñadores de fuentes rompen esta regla, por ejemplo, para acomodar un carácter inusual en un idioma exótico, por lo que es posible (aunque raro) que este valor sea demasiado pequeño.

Véase también QFontMetricsF::descent().

QString QRawFont::familyName() const

Devuelve el nombre de la familia de este QRawFont.

[since 6.7] QByteArray QRawFont::fontTable(QFont::Tag tag) const

Recupera la tabla sfnt especificada por tag de la fuente física subyacente, o una matriz de bytes vacía si no se ha encontrado dicha tabla. El orden de bytes de la tabla de fuentes devuelta es Big Endian, como especifica el formato sfnt.

Esta función se introdujo en Qt 6.7.

QByteArray QRawFont::fontTable(const char *tag) const

El nombre debe ser una cadena de cuatro caracteres.

Esta función sobrecarga fontTable(QFont::Tag).

[static] QRawFont QRawFont::fromFont(const QFont &font, QFontDatabase::WritingSystem writingSystem = QFontDatabase::Any)

Obtiene la representación física basada en una consulta a font. La fuente física devuelta es la fuente que Qt preferirá para mostrar el texto en el writingSystem seleccionado.

Advertencia: Esta función es potencialmente costosa y no debe ser llamada en código sensible al rendimiento.

[since 6.11] quint32 QRawFont::glyphCount() const

Devuelve el número de glifos en este QRawFont.

Esta función se introdujo en Qt 6.11.

bool QRawFont::glyphIndexesForChars(const QChar *chars, int numChars, quint32 *glyphIndexes, int *numGlyphs) const

Convierte una cadena de puntos unicode en índices de glifos utilizando la tabla CMAP de la fuente subyacente. La función funciona como glyphIndexesForString() excepto que toma una matriz (chars), los resultados se devolverán a través de la matriz glyphIndexes y el número de glifos se establecerá en numGlyphs. El tamaño del array glyphIndexes debe ser al menos numChars, si aún así no es suficiente, esta función devolverá false, entonces puede redimensionar glyphIndexes a partir del tamaño devuelto en numGlyphs.

Véase también glyphIndexesForString(), advancesForGlyphIndexes(), QGlyphRun, QTextLayout::glyphRuns(), y QTextFragment::glyphRuns().

QList<quint32> QRawFont::glyphIndexesForString(const QString &text) const

Convierte la cadena de puntos unicode dada por text en índices de glifos utilizando la tabla CMAP de la fuente subyacente, y devuelve una lista con el resultado.

Tenga en cuenta que, en los casos en que haya otras tablas en la fuente que afecten a la forma del texto, los índices de glifos devueltos no representarán correctamente la representación del texto. Para obtener el texto con la forma correcta, puedes usar QTextLayout para diseñar y dar forma al texto, y luego llamar a QTextLayout::glyphs() para obtener el conjunto de pares de índices de glifos y QRawFont.

Véase también advancesForGlyphIndexes(), glyphIndexesForChars(), QGlyphRun, QTextLayout::glyphRuns(), y QTextFragment::glyphRuns().

[since 6.11] QString QRawFont::glyphName(quint32 glyphIndex) const

Devuelve el nombre del glyphIndex dado.

Si el glifo no tiene un nombre explícito en la fuente, se sintetiza un nombre basado en su índice de glifo.

Esta función se introdujo en Qt 6.11.

QFont::HintingPreference QRawFont::hintingPreference() const

Devuelve la preferencia de sugerencia utilizada para construir este QRawFont.

Véase también QFont::hintingPreference().

bool QRawFont::isValid() const

Devuelve true si QRawFont es válido y false en caso contrario.

qreal QRawFont::leading() const

Devuelve el interlineado de este QRawFont en unidades de píxel.

Este es el espaciado natural entre líneas.

Véase también QFontMetricsF::leading().

qreal QRawFont::lineThickness() const

Devuelve el grosor para dibujar líneas (subrayado, sobrelineado, etc.) junto con el texto dibujado en esta fuente.

void QRawFont::loadFromData(const QByteArray &fontData, qreal pixelSize, QFont::HintingPreference hintingPreference)

Sustituye el QRawFont actual por la fuente contenida en el fontData suministrado para el tamaño (en píxeles) dado por pixelSize, y utilizando la preferencia de sugerencia especificada por hintingPreference.

fontData debe contener una fuente TrueType u OpenType.

Véase también loadFromFile().

void QRawFont::loadFromFile(const QString &fileName, qreal pixelSize, QFont::HintingPreference hintingPreference)

Sustituye el archivo QRawFont actual por el contenido del archivo al que hace referencia fileName para el tamaño (en píxeles) indicado por pixelSize, y utilizando la preferencia de sugerencia especificada por hintingPreference.

El archivo debe hacer referencia a una fuente TrueType u OpenType.

Véase también loadFromData().

qreal QRawFont::maxCharWidth() const

Devuelve la anchura del carácter más ancho de la fuente.

Véase también QFontMetricsF::maxWidth().

QPainterPath QRawFont::pathForGlyph(quint32 glyphIndex) const

Esta función devuelve la forma del glifo en un glyphIndex dado en la fuente subyacente si el QRawFont es válido. En caso contrario, devuelve un QPainterPath vacío.

El glifo devuelto siempre estará sin colorear.

Véase también alphaMapForGlyph() y QPainterPath::addText().

qreal QRawFont::pixelSize() const

Devuelve el tamaño de píxel establecido para este QRawFont. El tamaño de píxel afecta a cómo se rasterizan los glifos, al tamaño de los glifos devueltos por pathForGlyph(), y se utiliza para convertir métricas internas de unidades de diseño a unidades lógicas de píxel.

Véase también setPixelSize().

void QRawFont::setPixelSize(qreal pixelSize)

Establece el tamaño en píxeles con el que debe representarse esta fuente en pixelSize.

Véase también pixelSize().

QFont::Style QRawFont::style() const

Devuelve el estilo de este QRawFont.

Véase también QFont::style().

QString QRawFont::styleName() const

Devuelve el nombre del estilo de este QRawFont.

Véase también QFont::styleName().

QList<QFontDatabase::WritingSystem> QRawFont::supportedWritingSystems() const

Devuelve una lista de los sistemas de escritura soportados por la fuente según la información suministrada por el diseñador en el archivo de la fuente. Tenga en cuenta que esto no garantiza la compatibilidad con un punto unicode específico de la fuente. Puede utilizar supportsCharacter() para comprobar la compatibilidad con un carácter concreto.

Nota: La lista se determina basándose en los rangos unicode y los rangos codepage establecidos en la tabla OS/2 de la fuente y requiere que dicha tabla esté presente en el archivo de fuente subyacente.

Véase también supportsCharacter().

bool QRawFont::supportsCharacter(QChar character) const

Devuelve true si la fuente tiene un glifo que corresponde al character dado.

Véase también supportedWritingSystems().

bool QRawFont::supportsCharacter(uint ucs4) const

Devuelve true si la fuente tiene un glifo que corresponde al carácter codificado en UCS-4 ucs4.

Se trata de una función sobrecargada.

Véase también supportedWritingSystems().

[noexcept] void QRawFont::swap(QRawFont &other)

Cambia esta fuente sin procesar por other. Esta operación es muy rápida y nunca falla.

qreal QRawFont::underlinePosition() const

Devuelve la posición desde la línea base para dibujar subrayados debajo del texto renderizado con esta fuente.

qreal QRawFont::unitsPerEm() const

Devuelve el número de unidades de diseño que definen la anchura y la altura del cuadrado em para este QRawFont. Este valor se utiliza junto con el tamaño de píxel al convertir métricas de diseño a unidades de píxel, ya que las métricas internas se especifican en unidades de diseño y el tamaño de píxel da el tamaño de 1 em en píxeles.

Véase también pixelSize() y setPixelSize().

int QRawFont::weight() const

Devuelve el peso de este QRawFont.

Véase también QFont::weight().

qreal QRawFont::xHeight() const

Devuelve el xHeight de este QRawFont en unidades de píxel.

A menudo, pero no siempre, coincide con la altura del carácter 'x'.

Véase también QFontMetricsF::xHeight().

bool QRawFont::operator!=(const QRawFont &other) const

Devuelve true si este QRawFont no es igual a other. En caso contrario, devuelve false.

QRawFont &QRawFont::operator=(const QRawFont &other)

Asigna other a este QRawFont.

bool QRawFont::operator==(const QRawFont &other) const

Devuelve true si este QRawFont es igual a other. En caso contrario, devuelve false.

No miembros relacionados

[noexcept] size_t qHash(const QRawFont &key, size_t seed = 0)

Devuelve el valor hash para key, utilizando seed para sembrar el cálculo.

© 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.