我正在使用 Qt-Embedded 4.7.3 并尝试在小部件中显示中文字符。 我构建了一个 x86 版本的 Qt 嵌入式,以便我可以使用 qvfb 测试我的应用程序。但由于某些未知原因,我无法显示中文。这是我使用的测试程序:
#include <QApplication>
#include <QLabel>
#include <QTextCodec>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));
QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8"));
QLabel* label = new QLabel("Chinese中文");
label->show();
return app.exec();
}
我在 lib/fonts 下安装了 'WenQuanYiMicroHeiLight.ttf' 中文字体。中文字符以 UTF-8 编码,因此根据 Qt 文档,这应该允许我在小部件中显示中文。但是当我在 QVFB 中运行应用程序时,它没有显示中文。
有什么想法吗?
编辑: 后来我发现它实际上是由系统引起的(虽然不太确定)。我切换到Debian,中文又出现了。这可能与我的旧系统上的包依赖性问题有关(ArchLinux 但持有 gnome2 包......)
感谢您的回答。
最佳答案
我不知道问题出在哪里,但通常最好不要在代码文件中包含任何非 ASCII 字符,而是完全用英文编写代码并使用 Qt 的国际化概念(tr、QTranslator、linguist)来翻译 Gui。
关于c++ - 无法在 Qt-Embedded 4.7.3 中显示汉字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6999076/