3

Qtライブラリを使用してこの問題に気づきましたが、正直なところ、これはグローバルなOSXの問題であることがわかりました。私は音楽フォントを持っています。たとえば、古典的なPetrucci.ttfまたはMarl.ttf ... QPainter :: drawText()関数を使用して文字を配置すると、標準の文字しか表示されません。

また、これはアジアのフォントまたは他のシンボリックフォントを使用して発生します。Windowsでコンパイルされた同じQtコードは、フォントを正しい方法でレンダリングできます。したがって、たとえば、文字「a」は音符または一時停止、または音部記号です。

Macでは、文字「a」は「a」のままです。

奇妙なことに、Font Bookでフォントを開くと、フォントが正しくレンダリングされます。そこで、OpenOffice、Pages、TextEditでも使ってみました。常にMacのシンボリックフォントは通常どおりにレンダリングされ、入力された文字は文字のままです。

何か提案はありますか??

ありがとう...

4

1 に答える 1

1

OK、私が見つけた1つの答えは、フォントマップ全体をチェックし、対象範囲のUnicode値を取得することです。たとえば、私が使用しているフォントは0xf021-0xf0fbなので、次のような非テキスト記号を描画できます。

char c = 0xf021;
QString str = QString( QChar( c ) ); 
painter.drawText( 10, 10, str );
于 2013-04-13T09:22:44.597 に答える