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();
}
変換関数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();
}