2010-01-07 17 views
23

Chức năng dịch thuật của Qt tr không hoạt động ở chức năng main nhưng hoạt động tốt trong chức năng thành viên của QWidget. Tại sao vậy?Qt tr cho quốc tế hóa không hoạt động trong chức năng chính?

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

Chỉ cần thêm một chút thông tin? Xin vui lòng? Giống như, một số mã hoặc một cái gì đó? – balpha

+2

xin lỗi có vẻ như chức năng tr là chức năng tĩnh bên trong QObject và phần lớn thời gian QObject được thừa hưởng trong widget khác họ trực tiếp sử dụng tr, nhưng trong trường hợp của tôi nó phải là QObject :: tr works –

+0

ai đó có thể đóng nó không liên quan –

Trả lời

53

Chức năng dịch tr là phương pháp tĩnh QObject. Vì QWidget là một phân lớp của QObject, tr có sẵn theo phương pháp QWidget, nhưng trong main() bạn phải sử dụng QObject::tr để sử dụng chức năng, như được hiển thị bên dưới.

#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

cảm ơn balpha để làm cho câu trả lời có thể đọc được. –

Các vấn đề liên quan