QT动态切换关键思路(C++)(QLabel,QComboBox)

一、

  • 在你需要翻译的文件头文件,例如 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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

钅日 勿 XiName

给作者打赏一点小零食吧~~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值