国际化的Qt tr在主要功能中不起作用?

时间:2010-01-07 11:50:28

标签: string qt internationalization

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

1 个答案:

答案 0 :(得分:65)

翻译函数trQObject的静态方法。由于QWidgetQObject的子类,tr的方法可以使用QWidget,但在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();
}