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

标签 c++ qt

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

QObject::tr("消息");

但是 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();

可以做得更简单吗?

最佳答案

你可以通过qPrintable传递QStringQObject::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/

相关文章:

c++ - 打印多种不同类型的数字限制

c++ - 指定默认参数的友元声明必须是一个定义

python - 无法连接到python中的抽象unix套接字

windows - Windows下纯Qt应用使用KDE风格

c++ - Qt:lupdate 正在将撇号转换为 '

javascript - QML 中关于 JavaScript 函数作用域的规则在哪里定义?

qt - 在QT5.5.1示例中,FancyBrowser(基于WebEngine)在退出时崩溃

c++ - 在 netbeans 中编辑 OpenCL

c++ - 删除元组成员的复制构造函数导致错误

c++ - QThreadPool maxThreadCount 在应用程序和 DLL 中不同