【Qt】关于 QMessageBox 消息弹窗的按键的可翻译问题

在Qt中QMessageBox类是提供消息弹窗的,弹窗的按键都是英文的,在软件开发的时候,需要中英文转换的,一般是使用tr()函数将需要转换的文字包含在里面
例如:tr(“warning”) 在翻译的时候,可以按照的自己想要的意思翻译。

一般的消息弹窗是这样子写的:

QMessageBox::warning(0, tr("warning"), tr("Sending content cannot be empty"),
                                 QMessageBox::Ok);

效果是这样的:
在这里插入图片描述
如上弹窗的英文是可以翻译成中文的,除了按键里面的Ok。因为按键里面的OK是没有被tr()函数包起来的。

要想被tr()函数包含起来,要换一种写法。
如下:

QMessageBox messageBox;
messageBox.setWindowTitle(tr("warning"));
messageBox.setText(tr("Sending content cannot be empty"));
messageBox.setIcon(QMessageBox::Warning);
messageBox.setStandardButtons(QMessageBox::Ok);
messageBox.button(QMessageBox::Ok)->setText(tr("Ok"));
messageBox.exec();

运行结果如下:
在这里插入图片描述
它们是一样的,但是这个的按键里面的Ok是可以被翻译的,因为被tr()函数包含了。
它们与代码的对应关系如下:
在这里插入图片描述

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值