web-dev-qa-db-ja.com

国際化のためのQttrは主な機能では機能しませんか?

Qtの変換関数trmain関数では機能しませんが、QWidgetメンバー関数では正常に機能します。何故ですか?

int main(int argc, char *argv[])
{

    QApplication a(argc, argv);
    QDialog dialog; 
    QString temp = tr("dadasda");//error:tr was not declared in this scope
    dialog.show();
    return a.exec();
}
30

変換関数trは、QObjectの静的メソッドです。 QWidgetQObjectのサブクラスであるため、trQWidgetのメソッドで使用できますが、main()ではQObject::trを使用する必要があります以下に示すように、機能を使用するために。

#include <QObject>
int main(int argc, char *argv[])
{   
    QApplication a(argc, argv);
    QDialog dialog; 
    QString temp = QObject::tr("dadasda");//works fine
    dialog.show();
    return a.exec();
}
65