2009-11-05 30 views
5

Tôi có một số nút trên tabwidget. Các nút này cần phải có một số biểu tượng trên đầu trang của chúng.Biểu tượng Qt được nhúng trong Executeable

Tôi biết QPixmap sẽ cho phép tôi đặt hình ảnh lên trên một nút, nhưng tôi thấy rằng các hàm tạo này lấy một tệp dữ liệu làm tham số. Tôi muốn tránh kéo các biểu tượng xung quanh trong một tập tin sau khi tôi xây dựng. Tôi muốn nhúng các biểu tượng này vào thực thi bằng cách nào đó, để giảm bớt hành lý mà tôi cần phải lug xung quanh để làm cho nó hoạt động.

Tôi làm cách nào để thực hiện việc này?

Tôi muốn nghe các cách để hoàn thành mục tiêu không cần phải kéo các tệp biểu tượng xung quanh với tệp thực thi; hãy tập trung vào khía cạnh này nếu bạn bối rối về một số thuật ngữ mà tôi có thể đã sử dụng, vì tôi vẫn đang học Qt.

Trả lời

12

Tất nhiên bạn có thể nhúng biểu tượng, hình ảnh và tất cả các tài nguyên tùy chỉnh khác vào ứng dụng của mình. Vui lòng đọc The Qt 4's Resource System (hoặc click here cho Qt 5)

4

Bạn sẽ có tệp tài nguyên có tên là ProjectName.qrc và danh sách các biểu tượng này (thường là PNG). Với Qt Creator, nó đã bắt đầu với một tập tin QRC trống cho bạn. Khi chỉ định "tệp", bạn sử dụng cú pháp theo cách ": /Images/MyCrazyIcon.png" và biểu tượng được tải từ tài nguyên được nhúng vào tệp thi hành của bạn. Lưu ý rằng Qt không quản lý tài nguyên theo cách hoàn hảo nhất, đó là để có thể tải chúng theo yêu cầu nhưng không phải lúc nào cũng lưu trữ bộ nhớ hệ thống; họ luôn luôn hog lên bộ nhớ hệ thống, mà thực sự không phải là một vấn đề lớn nếu chúng nhỏ. Đối với đồ họa lớn mà bạn muốn xóa sạch sau này, chỉ cần chỉ định tên tệp thực (ví dụ: "MyBigFile.png" thay vì ": /MyBigFile.png", sau này trỏ đến tài nguyên trong tệp thi hành).

Với cú pháp tài nguyên, quyền lực nằm trong ký tự dấu hai chấm ":", vì vậy bạn thậm chí có thể có ": MyFile.png", cung cấp tệp QRC nằm trong cùng thư mục với tài nguyên. Đó là cách tôi đang làm nó, và cho đến nay thấy không có nhược điểm của cú pháp này. Tôi ghét bao gồm ".../Images/..." trong cú pháp, vì vậy tên tài nguyên của tôi được giải quyết bằng ": MyPic.png" không còn ": /Images/MyPic.png" và tất cả đều hoạt động tốt.

Tài liệu Qt tuyên bố rằng vào thời điểm này, chúng không hỗ trợ xử lý tài nguyên thực sự mà Windows và Mac hỗ trợ, nhưng mọi thứ có thể thay đổi trong tương lai. Hãy nhớ rằng, "hỗ trợ tài nguyên thực" đề cập đến điều tốt đẹp nơi bạn có thể đặt đồ họa và âm thanh nhiều megabyte trong tệp thực thi của mình và không bao giờ phải lo lắng về việc tải chúng vào bộ nhớ cho đến khi bạn yêu cầu. Các tài nguyên QRC được nạp vào bộ nhớ khi thực thi được tải lên. Các skinning bởi loadable hỗ trợ tập tin nhiều hơn làm cho điểm yếu này. Qt đang cải thiện nhanh chóng và một ngày nào đó họ có thể hỗ trợ rất tốt cả hệ thống tài nguyên Windows và Mac. Tôi nhận được dự phòng và phải đi. Ta ta. Mọi người điều chỉnh tôi, tôi cần điểm.

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