@ypnos đề nghị một liên kết tuyệt vời với nhiều cách tiếp cận để giải quyết vấn đề. Tôi thích cái cuối cùng - Creating a custom icon theme. Tác giả khẳng định ba Ưu (sẵn cho tất cả các nền tảng, Tuyệt vời thay đổi kích thước, Bao gồm tất cả các biểu tượng cần thiết), và hai Nhược điểm (Không phù hợp với sắc thái biểu tượng hệ thống, Pain in the ass để thực hiện). Ở đây tôi đề xuất các cải tiến để loại bỏ khuyết điểm.
Tôi đã sao chép biểu tượng Tango từ github. Kho lưu trữ https://github.com/ppinard/qtango đã có tệp index.theme. Nhưng chủ yếu, nó mang lại một tập lệnh Python generate_rcc.py
, có thể tự động tạo tệp *.qrc
. Tôi chỉ phải thay đổi các đối số của subprocess.check_call()
từ '--binary'
và '--compress'
đến '-binary'
và '-compress'
. Tệp được tạo chứa các đường dẫn tuyệt đối, nhưng thật dễ dàng để Tìm thay thế &. Người ta có thể sử dụng kịch bản này cho bất kỳ biểu tượng nào - bước đầu tiên mất thời gian được giải quyết.
Bây giờ, bằng cách sử dụng thuộc tính "Chủ đề", bạn có thể xác định các biểu tượng trong Nhà thiết kế Qt, như đã được hiển thị trong câu hỏi. Đối với những người đang phát triển dưới Linux, hệ thống biểu tượng sẽ hiển thị ngay trong Trình thiết kế (giả sử biểu tượng sử dụng tên biểu tượng chuẩn). Đó là giao diện bản địa (các biểu tượng sẽ được cấu hình trong cài đặt hệ thống của bạn). Điều đó giải phóng bạn khỏi mã hóa ui->action_Open->setIcon(...)
.
Và tinh chỉnh cuối cùng là đặt chủ đề trước khi thiết lập ui.
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent)
{
#ifdef _WIN32
QIcon::setThemeName("tango");
#endif
ui = new Ui::MainWindow;
ui->setupUi(this);
...
// NO NEED FOR ui->action_Open->setIcon(...)
}
Các #ifdef
lon nhiên được điều chỉnh để nhắm mục tiêu tất cả các nền tảng cần thiết, hoặc bỏ qua để buộc các biểu tượng giống nhau trên tất cả các nền tảng bao gồm cả Linux.
Kết quả là, cách tiếp cận này tránh tất cả mã hóa mất thời gian và kết quả phù hợp với các biểu tượng hệ thống ít nhất trên Linux.
Trong các hệ điều hành khác, có một lượng lớn các biểu tượng chuẩn được sử dụng trên thanh công cụ, v.v. Và có các chủ đề biểu tượng cho các biểu tượng này. Ví dụ: http://commons.wikimedia.org/wiki/Tango_icons http://gnome-look.org/content/show.php/?content=122078 Như bạn có thể thấy, đây là một khái niệm khá hay vì tất cả các ứng dụng sử dụng các biểu tượng chuẩn này phù hợp với môi trường máy tính để bàn mà người dùng cũng có thể tùy chỉnh. – ypnos
Xin lưu ý rằng các bình luận trước đây của tôi đã được trả lời cho các bình luận đã bị xóa. Xin lỗi vì sự nhầm lẫn. – ypnos