我正在使用Qt-Embedded 4.7.3并尝试在小部件中显示中文字符。 我已经构建了一个xt版本的Qt-embedded,以便我可以使用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 Documment,这应该允许我在窗口小部件中显示中文。但是当我在QVFB中运行应用程序时,它并没有显示中文。
有什么想法吗?
编辑: 后来我发现它实际上是由系统引起的(尽管不是很确定)。我转向Debian,中国人再次出现。它可能与我的旧系统上的包依赖性问题有关(ArchLinux但是持有gnome2包......)
感谢您的回答。
答案 0 :(得分:2)
我不知道问题是什么,但通常最好不要在代码文件中包含任何非ASCII字符,而是完全用英语编写代码并使用Qt的国际化概念(tr,QTranslator,linguist)来翻译桂。
答案 1 :(得分:0)
你不需要translate字符串吗?这是another good article。
尝试QLabel* label = new QLabel(tr("Chinese中文"));
。这至少是一个开始。