2011-12-20 15 views
5

Sto stampando alcuni caratteri UTF-8 fantastici, ovvero la freccia a destra 0x2192 e il lampo 0x21AF, in un QTextEdit. Funziona alla grande su un sistema operativo moderno come Ubuntu ma non riesce ad es. Windows XP, poiché i caratteri non sembrano supportare quei caratteri UTF-8. Invece, i famigerati quadretti segnaposto sono disegnati.Determinare se un QFont supporta un determinato carattere UTF-8

C'è un modo per scoprire se il carattere corrente di un'istanza QFont supporta un determinato carattere, quindi posso ricorrere a caratteri più semplici come "->" per la freccia destra?

Ho scoperto che Qt 4.8 ha una classe QRawFont, che in effetti ha un metodo QRawFont :: supportsCharacter() che fa esattamente quello che voglio, ma non posso usare 4.8 adesso, sono al 4.6 o 4.7 al meglio. Ho esaminato l'implementazione e chiamano QFontEngine :: canRender(). Tuttavia, QFontEngine sembra essere una classe non accessibile dall'esterno. Le uniche classi di suoni simili che riesco a trovare in 4.7 sono QFontEngineInfo e QFontEnginePlugin, entrambi non sembrano fornire nulla di utile nel mio caso.

risposta

5

canRender viene anche chiamato da QFontMetrics::inFont(QChar).

+0

Sì, è tutto! Grazie! Ovviamente mi sono un po 'perso in quella giungla di classe legata ai font, quindi ho perso quel metodo poco appariscente :). – DerManu

Problemi correlati