Не могу показать китайский символ в Qt-Embedded 4.7.3 - PullRequest
0 голосов
/ 09 августа 2011

Я использую 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();
}

У меня установлен китайский шрифт 'WenQuanYiMicroHeiLight.ttf' в lib / fonts.Китайские символы закодированы в UTF-8, поэтому, согласно Qt Documment, это должно позволить мне отображать китайский язык в виджете.Но когда я запускаю приложение в QVFB, оно не показывает китайский язык.

Есть идеи?

РЕДАКТИРОВАТЬ: Позже я обнаружил, что это на самом деле вызвано системой (хотя не совсем уверен).Я переключился на Debian, и китайцы снова показывают.Это может быть связано с проблемами зависимости пакетов в моей старой системе (ArchLinux, но с пакетами gnome2 ...)

Спасибо за ответы.

Ответы [ 2 ]

2 голосов
/ 09 августа 2011

Я не знаю, в чем проблема, но обычно лучше не включать в файлы кода символы, не входящие в ASCII, но писать код полностью на английском языке и использовать концепцию интернационализации Qt (tr, QTranslator, linguist) дляперевести Gui.

0 голосов
/ 10 августа 2011

Вам не нужно переводить строки?Вот еще одна хорошая статья .

Попробуйте QLabel* label = new QLabel(tr("Chinese中文")); возможно.По крайней мере, это начало.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...