在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()函数包含了。
它们与代码的对应关系如下: