无法在Qt-Embedded 4.7.3中显示中文字符

时间:2011-08-09 15:52:35

标签: c++ qt cjk

我正在使用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包......)

感谢您的回答。

2 个答案:

答案 0 :(得分:2)

我不知道问题是什么,但通常最好不要在代码文件中包含任何非ASCII字符,而是完全用英语编写代码并使用Qt的国际化概念(tr,QTranslator,linguist)来翻译桂。

答案 1 :(得分:0)

你不需要translate字符串吗?这是another good article

尝试QLabel* label = new QLabel(tr("Chinese中文"));。这至少是一个开始。