我希望我的应用程序是多语言的。这就是为什么我对应用程序中的每个字符串都使用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();

可以做得更容易吗?

最佳答案

您可以将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();

关于c++ - 为Object::tr传递QString的更简单方法?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19078879/

10-12 22:17