2 w 13141111 w_13141111 于 2017.09.14 11:29 提问

qt实现国际化,但按下按键时没反应。 3C

使用qt实现多语言,生成了ts和qm文件,并将用语言家翻译好发布了。但是在用代码实现是没反应:
void MainWindow::on_translate_triggered()//
{

QTranslator translator;
translator.load(":/qm/language_cn.qm");
qApp->installTranslator(&translator);
qDebug()<<"13314441555";
}
问问大神,是不是写错了,还是少了什么?我在网上找了好多,但是没反应不知道怎么回事了!。求大神指点指点,小弟在此谢过各位大神了。

3个回答

u011046042
u011046042   2017.09.14 14:15

看看Qt assistent 助手里面应有有这方面的提醒吧 或许要在Qt的工程文件中加东西

w_13141111
w_13141111 qt里的工程文件已经添加了
2 个月之前 回复
yinyuchen1
yinyuchen1   2017.09.14 16:44

后面加上这句话 ui->retranslateUi(this); //这句必须带,在线实时切换

yinyuchen1
yinyuchen1 回复w_13141111: 你重新编译一下,没理由出错的,我是这样写的void MainWindow::on_pushButton_clicked() { if (translater.load(":/qm/chinese.qm")) { qApp->installTranslator(&translater); } ui->retranslateUi(this); //这句必须带,在线实时切换 }
2 个月之前 回复
w_13141111
w_13141111 加了后报错:无法将参数 1 从“MainWindow *const ”转换为“QMainWindow *”
2 个月之前 回复
w_13141111
w_13141111   2017.09.18 13:42

void MainWindow::on_translate_triggered()//翻译按键
{
//QTranslator translator; applicationDirPath
this->Multilingual(qApp->applicationDirPath()+"/linguist/Language_en.qm");
}

void MainWindow::Multilingual(QString Route)//翻译
{
QTranslator translator;
translator.load(Route);
qApp->installTranslator(&translator);
qDebug()<<"123456789";
windowUi();
}

void MainWindow::windowUi()
{
ui->BackOff->setToolTip(tr("Back Off"));
}
完成!

Csdn user default icon
上传中...
上传图片
插入图片