4

我对 Qt 程序的本地化有一些问题。在我的电脑上一切都很好,但是当我将我的程序发送给其他用户时,他们看不到某些语言的符号。在这种情况下,我测试了泰语。

屏幕截图上的程序输出:我的 cpu 操作系统:Windows 7 Ultimate x64 SP1 http://myprintscreen.com/s/1id

用户 cpu 操作系统相同:Windows 7 Ultimate x64 SP1 http://myprintscreen.com/s/1ie

用户可以在 Microsoft Word 和 Notepad++ 中打印泰语,但不能在 Qt 的输入字段中打印。

我们发现了一些有趣的错误(http://myprintscreen.com/s/1if):如果您从 QTextEdit 中的 Microsoft Word 复制泰语文本,它会正常显示。QLineEdit 和 QPlainTextEdit 无法正确显示。

在 Windows XP x86 SP3 ( http://myprintscreen.com/s/1ii ) 上不显示日语但泰语一切都很好:)

我尝试使用:

QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8"));
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));
QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8"));
QString::fromUtf8
tr
trUtf8
QTextCodec::codecForName("UTF-8")->toUnicode

Qt项目:http ://www74.zippyshare.com/v/39453145/file.html

请帮忙。我不明白该怎么做才能让它工作。

4

1 回答 1

3

解决方案很简单。用户计算机上的字体问题。在我的情况下,Qt 默认使用 MS Shell Dlg 2 字体。但是在用户计算机上,他被“损坏”了。我添加了这段代码:

QApplication::setFont(QFontDialog::getFont(0, QApplication::font()));

并继续测试。有些字体会显示,有些则不会。在不同的计算机上有不同的行为。

这就是为什么我决定为我的字体添加必要的发行版并为 QApplication 安装它。

于 2013-06-06T13:18:40.433 回答