2013-09-29 73 views
3

我想我的應用程序是多語言的。這就是爲什麼我在我的應用程序中爲每個字符串使用Object::tr。它很容易,當我有這樣的:傳遞Object :: tr的QString更容易嗎?

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

能不能做到更容易嗎?

+0

通常不需要翻譯'QString'。在你的例子中,你應該使用'msg + = tr(「某種消息」)。 –

回答

9

您只需將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(); 
+0

謝謝,解決了! :) – nullpointer