Tôi có ứng dụng Qt có một số tệp JPG được nhúng mà tôi muốn hiển thị. Khi tôi biên dịch và chạy cả hai phiên bản gỡ lỗi và phát hành trên máy của mình, mọi thứ hoạt động hoàn hảo. Khi tôi sao chép ứng dụng vào một ổ USB và chạy nó từ đó trên máy tính của tôi, nó hoạt động tốt. Trên ổ USB và máy của nhà phát triển khác: OK. Trên ổ USB trên máy thứ ba, không phải của nhà phát triển: không có hình ảnh!Tài nguyên JPG nhúng không tải trong ứng dụng Qt
proj.pri
RESOURCES += ./proj.qrc
proj.qrc:
<RCC>
<qresource prefix="/myApp">
<file>Gui/Resources/logo.jpg</file>
<file>Gui/Resources/another_image.jpg</file>
</qresource>
</RCC>
main.cpp:
{
...
QImage *logo = new QImage(":/myApp/Gui/Resources/logo.jpg");
QImage *image = new QImage(":/myApp/Gui/Resources/another_image.jpg");
myClass *d1 = new myClass("Some Text", 48, 30, logo);
myClass *d2 = new myClass("Some More Text", 48, 30, another_image);
...
}
Tôi đã xác nhận rằng hình ảnh đang được thêm vào tệp thực thi bằng cách nhận xét ra dòng RESOURCES trong tệp .pri. Kích thước của tệp nhị phân giảm theo kích thước của hình ảnh cộng với một chút; khi tôi chạy ứng dụng, hình ảnh không xuất hiện. Tôi không nhận xét dòng RESOURCES và mọi thứ hoạt động như mô tả ở trên.
Tôi thiếu gì ở đây? Một DLL trên máy không phải của nhà phát triển? Một
Môi trường:
- Win XP
- Qt 4.6.1
- Visual Studio 2008
- Qt Creator 1.3.1
Tôi đã trải nghiệm điều này trước đây và đây là giải pháp mà tôi gặp phải. OP, hãy nhớ rằng cấu trúc thư mục có thể quan trọng. –
BTW, sao chép imageformats/qjpeg4.dll vào thư mục gốc (như trong ví dụ trên) và để lại qt.conf và root/plugins. – dwj
Vâng điều này có thể là một chút dư thừa, nhưng tôi không nhớ chính xác thứ tự tra cứu Qt không :). – Eugene