Qt tr для интернационализации не работает в основной функции? - PullRequest
29 голосов
/ 07 января 2010

Функция перевода Qt tr не работает в функции main, но отлично работает в функции-члене 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 Ответ

65 голосов
/ 07 января 2010

Функция перевода tr является статическим методом QObject. Поскольку QWidget является подклассом QObject, 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();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...