《Qt5+ error: 'tr' was not declared in this scop》

版权声明:本文为博主原创文章,未经博主允许不得转载,博客地址:http://blog.csdn.net/mars_xiaolei。 https://blog.csdn.net/mars_xiaolei/article/details/87876962

当使用Qt国际化翻译函数tr时,如果超出了使用范围就会出现以下情况:

国际化翻译函数tr是QObject类的静态公共成员函数,而QObject类是所有Qt对象的基类,国际化翻译函数tr只有在QObject类或者其子类中可以使用,像QWidgets就是继承自QObject类,因此在QWidgets的小部件中就可以直接使用国际化翻译函数tr,如果是在QObject类外部,使用tr函数进行翻译是不起作用的,需要添加QObject头文件#include <QObject>,并使用QObject::规定其作用域范围,像下面这样。

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

猜你喜欢

转载自blog.csdn.net/mars_xiaolei/article/details/87876962
tr