zoukankan      html  css  js  c++  java
  • Qt的翻译文件QTranslator不能使用问题总结(原)

    笔者今天在自己工程中使用翻译文件,发现没有起作用,反复查找,发现是用宏定义了命名空间,生成.ts文件时,不会加上命名空间,所以生成的.qm文件在实际使用时,会无法找到对应的语句。

    如果将宏定义的命名空间修改为普通字符,则没有上述问题。

    刚才是namespace MyProject{ 是用#define USNS namespace MyProject{定义好宏,直接使用宏的,所以生成文件,不能自己将宏转换导致

    总结一下翻译碰到要注意的几个问题:

    1,基本使用

    QTextCodec * textCodec = QTextCodec::codecForName("System");
    QTextCodec::setCodecForLocale(textCodec);
    
    QTranslator translator;
    translator.load(":/testTranslate/testtranslate_zh.qm");
    a.installTranslator(&translator);

    2,上面需在窗口创建前,app创建之后调用

    3,如果类是在某命名空间内,生成的.ts文件的name会将命名空间名称加上,如果没有加上命名空间,翻译文件安装会出异常。如下:

     <name>TTTT::testTranslate</name>

  • 相关阅读:
    什么是操作系统
    去除按钮点击的边框
    unsupported time zone specified undefined
    w3c JS测试
    视频播放器
    document.write
    HTML4到HTML5
    MPU6050
    NRF24L01模块配置
    4-Four-Seeing hands
  • 原文地址:https://www.cnblogs.com/yanhuiw/p/3913438.html
Copyright © 2011-2022 走看看