为Object :: tr传递QString的更简单方法?

时间:2013-09-29 13:57:29

标签: c++ qt

我希望我的应用程序是多语言的。这就是我在我的应用中为每个字符串使用Object::tr的原因。当我有这个时,很容易:

QObject::tr("message");

QObject::tr的QString很长:

    QString msg = "";
    msg += "some kind of message";

    QMessageBox msgBox;
    msgBox.setText(QObject::tr(msg.toStdString().c_str()));
    msgBox.setIcon(QMessageBox::Warning);
    msgBox.exec();

可以更容易吗?

1 个答案:

答案 0 :(得分:10)

您可以将QString通过qPrintable传递给QObject::tr

QString msg = "";
msg += "some kind of message";

QMessageBox msgBox;
msgBox.setText(QObject::tr(qPrintable(msg)));
msgBox.setIcon(QMessageBox::Warning);
msgBox.exec();