qt显示不了中文

lymcool 2017-12-17 09:09:28

我按照网上说的方法尝试了很多次都不行。
QApplication app(argc, argv);
QTextCodec::setCodecForTr(QTextCodec::codecForName("GBK"));
QLabel hello(QObject::tr("你好"));
hello.setWindowTitle(QObject::tr("终于搞定中文"));
hello.show();
return app.exec();
另外,我想加载一个新字体,下载了微软雅黑msyh.ttf,把其添加到lib/font文件夹里,然后也一直不成功
//将字体文件名传给addApplicationFont,得到字体的Id
int fontId = QFontDatabase::addApplicationFont(QCoreApplication::applicationDirPath() + "/msyh.ttf");
qDebug() << "fontId = "<< fontId;
//将字体Id传给applicationFontFamilies,得到一个QStringList,其中的第一个元素为新添加字体的family
QString msyh = QFontDatabase::applicationFontFamilies(fontId).at(0);
qDebug() <<"msyh = " <<msyh;
QFont font(msyh);
//将此字体设为QApplication的默认字体
QApplication::setFont(font);
请问各位大侠,应该怎么解决???我感觉是我的QT没配置好,应该怎么改?
...全文
1067 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
丁劲犇 2018-02-26
  • 打赏
  • 举报
回复
楼主的tr用法是错误的。 tr 里只应该出现 ASCII码字符。所有的中文应该是通过“国际化”功能,用Qt语言家翻译后发布为qm,动态加载的。这样可以同时准备中文、日语、法语等等。 若用的是g++编译器,你把.cpp用记事本另存为 utf-8编码,兴许是可以正确显示的,但这仍旧是错误的用法。 若用的是vc++编译器,请使用 QString::fromLocal8Bit,或者 QString::fromUTF8,总有一个适合,但这仍旧是错误的用法。 经过无数项目实践,用Qt自带的国际化功能是最优选择。 ------------- 一些国内所谓“Qt”教材里赫然出现“tr("确定“)”””之类的用法,太误人子弟。
赵4老师 2017-12-18
  • 打赏
  • 举报
回复
百度搜相关关键字。

3,881

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 其它技术问题
社区管理员
  • 其它技术问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧