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

nul*_*ter 3 c++ qt

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

QObject::tr("message");

但有QString QObject::tr是很长的:

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

    QMessageBox msgBox;
    msgBox.setText(QObject::tr(msg.toStdString().c_str()));
    msgBox.setIcon(QMessageBox::Warning);
    msgBox.exec();
Run Code Online (Sandbox Code Playgroud)

可以更容易吗?

Nem*_*ric 10

你可以只传递QString通过qPrintableQObject::tr.

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

QMessageBox msgBox;
msgBox.setText(QObject::tr(qPrintable(msg)));
msgBox.setIcon(QMessageBox::Warning);
msgBox.exec();
Run Code Online (Sandbox Code Playgroud)