c++ - 无法在 Qt-Embedded 4.7.3 中显示汉字

标签 c++ qt cjk

我正在使用 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/

相关文章:

c++ - QTableView拖放行无法正常工作

c++ - 使用 QTreeView,如何仅突出显示具有调用函数的特定行/列?

python - 了解 Python Unicode 和 Linux 终端

.net - C#中如何区分简体中文和繁体中文?

c++ - 眨眼检测 OpenCV C++

c++ - "There' s 没有为平台 Win32 分配给此项目的 Qt 版本"- Qt 的 Visual Studio 插件

c++ - 当我有一堆小部件时,Qt 如何设置全局 mouseReleaseEvent

android - 如何在 Android 的 XMLWorker 中使用 iText 中的 CJK 字体?

c++ - QPainter 中的文本比 QPainterPath 中的文本好得多

c++ - wcsdup 分配的内存是否应该显式释放?