一、
- 在你需要翻译的文件头文件,例如 example.h添加下述内容
#include <qevent.h>
class example{
protected:
virtual void changeEvent(QEvent* event);
}
二、
在你需要翻译的源文件,例如 example.cpp添加下述内容
void QLightControlSetWidget::changeEvent(QEvent* event)
{
if (event->type() == QEvent::LanguageChange)
{
}
else
{
QWidget::changeEvent(event);
}
}
上述是实现动态翻译的关键翻译,QT检测到语言发生变化就会调用这个函数的内容重新渲染界面。
三、
在你需要翻译的地方用tr()
包裹起来
例如
void example::init()
{
QLbale* label1 = new QLabel(tr("标签1"));
QComboBox* comboBox1 = new QComboBox* ();
comboBox1->addItem(1,"下拉框1");
}
然后再把他们写到changeEvent(QEvent* event)
这个函数里面确保QT重新渲染界面
例如:
void QLightControlSetWidget::changeEvent