2010-01-07 1 views
23

main 함수에서 Qt의 변환 함수 tr이 작동하지 않지만 QWidget 멤버 함수에서 올바르게 작동합니다. 왜 그런가요?국제화를위한 Qt tr이 주 기능에서 작동하지 않습니까?

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

정보가 조금 더 많습니까? 부디? 어떤 코드 같은 거요? – balpha

+2

미안하지만, tr 함수는 QObject 내부의 정적 함수입니다. 대부분의 경우 QObject는 tr을 직접 사용하는 다른 위젯에서 상속 받지만, 제 경우에는 QObject :: tr 함수를 사용해야합니다. –

+0

누군가가 더 이상 관련이 없으므로 닫을 수 있습니다. –

답변

53

번역 기능 trQObject의 고정 방법. QWidgetQObject의 하위 클래스이므로 QWidget의 방법으로 tr을 사용할 수 있지만 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(); 
} 
+4

해답을 읽을 수 있도록 해준 감사합니다. –

관련 문제