Qt翻译---补充

         之前说过Qt翻译工具----语言家的使用,原以为只要翻译好了把语言包拷贝到板子里就好了,事实证明,我弱爆了.现在对语言翻译做一些补充.

  

  1.qt语言家是对代码中被tr()函数包含起来的字符串进行翻译,首先我要确保我想要翻译的字符串必须是在tr()函数内部.


  2.即使翻译了,如果在view显示时没有即使刷新,也可能导致显示出来的语言错误.

    我的做法是增加一个 changeEvent()函数:

    void TextListSMS::changeEvent(QEvent *e)
{
    INFO("[Text]Start:TextListSMS::changeEvent() called")
    QWidget::changeEvent(e);
    switch (e->type())
    {
    case QEvent::LanguageChange:
        updateText();
        break;
    default:
        break;
    }
    INFO("[Text]End:TextListSMS::changeEvent() called")
}

  然后在updateText()函数中再次用tr()设置需要翻译的字符串



        3.在view需要显示的时候(eView_active),在this->show();之前调用updateText()进行刷新就可以了.

       这种方法是针对用代码实现窗口部件.



另外:如果有些widget用.ui文件实现的话,需要在changeEvent()函数中调用: ui->retranslateUi(this);

         并在this->show();之前再次调用进行刷新.


如果两种widget的实现方式都有,那么两种方式都需要调用.



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值