qt国际化

FORMS += \
    mainwindow.ui \
    mydialog.ui

TRANSLATIONS += lala_zh.ts\
                lala_en.ts

DESTDIR = $$PWD/out

win32 {
COPY_SRC = $$replace(PWD, /, \\)
COPY_DEST = $$replace(DESTDIR, /, \\)
QMAKE_POST_LINK += copy /Y $$COPY_SRC\\*.qm $$COPY_DEST\\*.qm;
}
unix {
}

#install_it.path = $$DESTDIR
#install_it.files = lala_zh.qm

#INSTALLS += \
#    install_it
MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    m = nullptr;
    isChinese = false;
    connect(ui->pushButton, SIGNAL(clicked()), this, SLOT(showMy()));
}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::showMy()
{
    //if(m == nullptr)
     MyDialog*   mr = new MyDialog(this);
    mr->show();
}

void MainWindow::setLang(bool isChinese)
{
    ui->retranslateUi(this);
}
#include <QTranslator>
#include <mainwindow.h>

MyDialog::MyDialog(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::MyDialog)
{
    ui->setupUi(this);

    isChinese = false;

    connect(ui->pushButton, SIGNAL(clicked()), this, SLOT(showMy()));
    connect(this, SIGNAL(setl(bool)), parent, SLOT(setLang(bool)));
}

MyDialog::~MyDialog()
{
    delete ui;
}

void MyDialog::showMy()
{
    isChinese = !isChinese;

    QTranslator trans;
    if(isChinese)
    {
        if(trans.load(qApp->applicationDirPath()+"/lala_zh.qm"))
            qApp->installTranslator(&trans);
    }
    else
    {
        if(trans.load(qApp->applicationDirPath()+"/lala_en.qm"))
            qApp->installTranslator(&trans);
    }

    ui->retranslateUi(this);

    emit setl(isChinese);
}

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值