2012-12-27 34 views
11

tôi có một dự án máy tính để bàn Qt5 và tôi đã thêm một "resource.qrc" tập tin với các biên tập viên Qt Creator mà tạo ra các dòng sau vào tập tin .pro của dự án:Qt QRC - không thể tải biểu tượng

tôi đặt một tiền tố trống và một file png (14x14) và tôi cố gắng sử dụng nó như thế này:

QPixmap pixmap = QPixmap ("://my_image.png"); 
ui->combobox->addItem(QIcon(pixmap), "itemname"); 

vấn đề là: biểu tượng sẽ không hiển thị!

Các công trình sau đây:

QPixmap pixmap(14,14); 
pixmap.fill(QColor("red")); 
ui->combobox->addItem(QIcon(pixmap), "itemname"); 

vì vậy vấn đề phải trong quá trình nhúng tài nguyên .. tôi nhận thấy rằng tạo ra "exe" không có một phần nguồn lực bên trong nó ... Tôi không có tĩnh thư viện bên ngoài liên kết, vì vậy tôi không nghĩ rằng tôi cần (tài nguyên) vĩ mô Q_INIT_RESOURCE (nó mang lại cho tôi không xác định bên ngoài)

cập nhật: tôi gửi bài ở đây tập QRC của tôi:

<RCC> 
    <qresource prefix="/"> 
     <file>my_image.png</file> 
    </qresource> 
</RCC> 

nó khá đơn giản và tôi không hiểu tại sao biểu tượng thời gian chạy không hiển thị

+2

Nguồn lực Qt không sử dụng cơ chế tài nguyên exe của Windows, vì vậy thông thường chúng không hiển thị ở đó. Vui lòng đăng tệp resource.qrc của bạn. Ngoài ra, lưu ý rằng bạn có thể tải hình ảnh trực tiếp trong QIcon. Không cần phải đi qua một QPixmap. Hãy thử đơn giản: 'ui-> combobox-> addItem (QIcon (":/my_image.png ")," itemname ");' –

+0

Tôi đã làm điều đó, cảm ơn sự giúp đỡ của bạn! –

Trả lời

11

@Nikos C. cung cấp cho bạn lời khuyên hữu ích, nhưng tôi nghĩ vấn đề chính của bạn là bạn không sử dụng đúng liên kết đến nguồn.

Trong code của bạn, bạn có:

QPixmap pixmap = QPixmap ("://my_image.png"); 

nhưng, theo documentation, nó phải là

QPixmap pixmap = QPixmap (":/my_image.png"); 

hoặc bạn có thể cho bí danh đến tài nguyên của bạn, và sử dụng những thay thế.

21

Gần đây tôi đã gặp vấn đề tương tự, nơi tôi đã làm sai chuỗi tài nguyên. Nếu bạn đang sử dụng phiên bản hiện tại của Qt Creator, bạn có thể mở tệp .qrc để chỉnh sửa và sau đó nhấp chuột phải vào tài nguyên (trong trường hợp này hình ảnh) mà bạn đang cố gắng giải quyết, sau đó nhấp vào "Sao chép đường dẫn tài nguyên vào Clipboard". Và thì đấy, bạn có chuỗi tài nguyên chính xác mỗi lần.

Qt Creator thật tuyệt vời.

Hy vọng điều này sẽ hữu ích!

+0

Thx cho 'Sao chép tài nguyên đường dẫn ...' điều này cho thấy rằng tôi đã sao chép thư mục ':/từ điển/từ điển/en.dic' –

0

Issue được giải quyết là sử dụng rcc.exe C: \ root \ QT> c: \ root \ QT \ 4.7.4 \ bin \ rcc.exe Headless.qrc -o qtresources.cpp Trong biên soạn, bạn nên có hình ảnh trong đường dẫn. Tạo tệp qtresources.cpp bao gồm tệp này trong makefile hoặc dự án. Bạn có thể xem hình ảnh.

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