QT动态切换中英文

参考文章:http://blog.csdn.net/wuff1988/article/details/7093522

                    http://blog.csdn.net/wangxueang224/article/details/7802306

我的demo程序下载:http://download.csdn.net/detail/hailmy/8024907

1. *.pro 文件新增

TRANSLATIONS += trans/zh.ts \
                trans/en.ts

2. 程序使用tr()来输出字符串

3. 使用QT自带工具 lupdate 生成ts文件(例如: lupdate demo.pro) 生成在 ./trans/

4. 使用QT自带工具 linguist 生成qm文件

5. 把生成的qm文件导入到工程里面


贴上切换代码

#define current_language "Chinese"
QTranslator *tor;

tor = new QTranslator();
if (current_language == "Chinese") {
    tor->load(":/trans/zh.qm");
} else if (current_language == "English") {
    tor->load(":/trans/en.qm");
}
qApp->installTranslator(tor);
this->ui->retranslateUi(this);

/*
    语言选择
*/
void MainWindow::on_comboBox_3_activated(int index)
{
    switch (index) {
    case 0:
        QApplication::removeTranslator(tor);
        tor->load(":/trans/zh.qm");
        qApp->installTranslator(tor);
        this->ui->retranslateUi(this);
        ui->comboBox_3->setCurrentIndex(0);
        current_language = "Chinese";
        break;
    case 1:
        QApplication::removeTranslator(tor);
        tor->load(":/trans/en.qm");
        qApp->installTranslator(tor);
        this->ui->retranslateUi(this);
        ui->comboBox_3->setCurrentIndex(1);
        current_language = "English";
        break;
    default:
        QApplication::removeTranslator(tor);
        tor->load(":/trans/zh.qm");
        qApp->installTranslator(tor);
        this->ui->retranslateUi(this);
        ui->comboBox_3->setCurrentIndex(0);
        current_language = "Chinese";
        break;
    }
    set_default_Form_conf();
}


 主要注意的是,动态切换完毕后,需要对lineEdit等控件重新setText下初始值。 
  

你可能感兴趣的:(QT)