Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Qt tr for internationalisation does not work in main function?

Qt's translation function tr does not work in the main function but works fine in a QWidget member function. Why is that?

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(); } 
like image 609
Passionate programmer Avatar asked Jan 07 '10 11:01

Passionate programmer


1 Answers

The translation function tr is a static method of QObject. Since QWidget is a subclass of QObject, tr is available in methods of QWidget, but in main() you have to use QObject::tr in order to use the function, as shown below.

#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(); } 
like image 120
Passionate programmer Avatar answered Sep 20 '22 08:09

Passionate programmer