Qt汉字显示乱码的一个简单解决方案

发布于 2022-09-30 19:41:08 字数 1316 浏览 15 评论 0

这个方法对于已经在汉语字符串周围使用tr()宏的人来说比较有效。按照说明的方法定义一个宏,将其放到全局可见的地方,然后把所有的tr替换成宏的名字即可

  1. /*在一个汉字字符串可见的地方声明一个QTextCodeC指针,例如某个对话框要显示汉字,那么可以将其声明为该对话框的成员变量*/
  2. QTextCodec *gbCode;
  3. /*对话框的构造函数中*/
  4. #define Mtr(s) (gbkCode->toUnicode(s))
  5. AppDialog::AppDialog(QWidget *parent)
  6.     : QDialog(parent), ui(new Ui::Dialog)
  7. {
  8.     gbkCode=QTextCodec::codecForName("GB2312");//你完全可以改成GB18080等编码
  9.     ui->setupUi(this);
  10.     createTray();
  11.     this->setWindowTitle(Mtr("Linkapp v1.0"));
  12.     /**其他代码***/
  13. }
  14. /*代码中的使用*/
  15. void AppDialog::disconnect()
  16. {
  17.     if(connected){
  18.         linkThread->stop();
  19.         connected=false;
  20.     }
  21.     linkButtonState=false;
  22.     trayIcon->setIcon(QIcon(":/images/form-icon.png"));
  23.     ui->link_unlink->setText(Mtr("连接")); //使用例子1
  24.     trayIcon->setToolTip(QString(Mtr("未连接")));//使用例子2
  25. }

复制代码

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文