zoukankan      html  css  js  c++  java
  • qt不同模块使用多语言

    Qt装载多个多语言文件,主要有两种方式:

    在主程序中装载,主程序为A 动态快为B 为A 与B 分别生成A.qm  B.am文件,然后在A的主程序一起装载

    QApplication a(argc, argv);

    // 定义两个QTranslator 对象,分别对应不同的翻译文件
    QTranslator translator;
    QTranslator translatorsys;
    // 各自load不同的qm文件(qm文件已添加到当前工程的资源中)
    translator.load(":/cs.qm");
    translatorsys.load(":/qt_zh_CN.qm");
    // 分别安装翻译文件
    a.installTranslator(&translator);
    a.installTranslator(&translatorsys);

    第二种是在不同模块中分别装载。这时候要注意一点,定义的QTranslator要在整个模块的生存期内都有效,不然只在有效期内的翻译有效,其他时候翻译无效。网上大部分都是定义一个局部变量,然后装载,局部变量的生命周期结束后,翻译就无效。

        QTranslator translator;  设置为在整个动态库加载生存周期内都有效的变量
         translator.load(QString(test_zh.qm", ".");
        QCoreApplication::installTranslator(&translator);

  • 相关阅读:
    mysql数据库启动停止
    事务的隔离级别
    排序之选择排序
    排序之希尔排序
    排序之折半插入排序
    排序之直接插入排序
    排序之冒泡排序
    排序之快速排序
    字符串拷贝和拼接
    字符串旋转问题
  • 原文地址:https://www.cnblogs.com/cg_ghost/p/11537677.html
Copyright © 2011-2022 走看看