2011-12-20 6 views
5

Estoy imprimiendo algunos caracteres UTF-8 de lujo, es decir, flecha derecha 0x2192 y relámpago 0x21AF, a un QTextEdit. Esto funciona muy bien en un sistema operativo moderno como Ubuntu, pero no funciona, por ejemplo. Windows XP, ya que las fuentes no parecen admitir esos caracteres UTF-8. En su lugar, se dibujan los infames cuadrados pequeños de marcador de posición.Determine si un QFont admite cierto carácter UTF-8

¿Hay alguna manera de averiguar si la fuente actual de una instancia de QFont admite un carácter dado, así que puedo recurrir a caracteres más simples como "->" para la flecha derecha?

Descubrí que Qt 4.8 tiene una clase QRawFont, que de hecho tiene un método QRawFont :: supportsCharacter() que hace exactamente lo que yo quiero, pero no puedo usar 4.8 en este momento, estoy en 4.6 o 4.7 en el mejor de los casos He revisado la implementación y llaman a QFontEngine :: canRender(). Sin embargo, QFontEngine parece ser una clase no accesible desde el exterior. Las únicas clases de sonido similares que puedo encontrar en 4.7 son QFontEngineInfo y QFontEnginePlugin, ambas no parecen proporcionar nada útil en mi caso.

Respuesta

5

canRender también se llama por QFontMetrics::inFont(QChar).

+0

Sí, eso es todo! ¡Gracias! Obviamente me perdí un poco en esa clase relacionada con class-jungle, así que me perdí ese método discreto :). – DerManu

Cuestiones relacionadas