3

我在使用 Qt 库时注意到了这个问题,但老实说,我发现这是一个全球性的 OS X 问题。我有一个音乐字体,比如经典的 Petrucci.ttf 或 Marl.ttf...当我使用 QPainter::drawText() 函数放置字符时,我只能看到标准字母。

使用亚洲字体或其他符号字体也会发生这种情况。在 Windows 上编译的相同 Qt 代码可以以正确的方式呈现字体。因此,例如,字母“a”是一个音符或一个停顿,或一个谱号......

在 Mac 中,字母“a”仍然是“a”。

奇怪的是,如果我在 Font Book 中打开字体,字体会正确呈现。所以我也尝试在 OpenOffice、Pages 或 TextEdit 上使用它。Always on Mac 符号字体正常呈现,键入的字母仍然是字母。

你有什么建议吗??

谢谢...

4

1 回答 1

1

好的,我找到的一个答案是检查整个字体图并获取感兴趣范围的 unicode 值。例如,我使用的字体是 0xf021-0xf0fb,所以,你可以画一个像这样的非文本符号:

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