0
点赞
收藏
分享

微信扫一扫

qt无法翻译问题

霸姨 2022-09-22 阅读 82


一般来说:

void MainWindow::changeEvent(QEvent *event)
{
if (event->type() == QEvent::LanguageChange) {
ui->retranslateUi(this);


} else
QWidget::changeEvent(event);
}

我们街道信号后,调用ui->retranslateUI(this); 就能实现ui的翻译,

但是像这种:

ui->comboBox->addItem(icon,tr("left"));

ui->comboBox->addItem(icon,tr("RIGHT EYE"));

在cpp文件中 添加的就翻译不出来,

解决办法是:

我们先来看看:

ui->retranslateUi(this);是怎么翻译的就知道了。



void retranslateUi(QMainWindow *MainWindow) { MainWindow->setWindowTitle(QApplication::translate("MainWindow", "MainWindow", 0)); pushButton->setText(QApplication::translate("MainWindow", "restart", 0)); pushButton_2->setText(QApplication::translate("MainWindow", "help", 0)); label->setText(QApplication::translate("MainWindow", "china", 0)); pushButton_3->setText(QApplication::translate("MainWindow", "PushButton", 0)); } // retranslateUi

这是ui翻译函数的处理方式,我们可以看出,他是重新设置了文本实现了翻译的,


所以如果我们需要翻译的话,也需要这样去写一个函数来设置所有其他控件的文本:


比如:



void MainWindow::retranslate() 
{

ui->comboBox->clear();

QPixmap pixmap(1, ui->comboBox->height());

pixmap.fill(Qt::transparent);

QIcon icon(pixmap);

ui->comboBox->addItem(icon,tr("left"));ui->comboBox->addItem(icon,tr("RIGHT EYE")); 
}


举报

相关推荐

0 条评论