2008-09-23 34 views
12

Tôi có một chương trình nền tảng chạy trên Windows, Linux và Macintosh. Phiên bản cửa sổ của tôi có Biểu tượng nhưng tôi không biết cách tạo một biểu tượng cho bản dựng Linux của mình. Có định dạng chuẩn cho KDE, Gnome, v.v. hoặc tôi sẽ phải làm gì đó đặc biệt cho mỗi cái?Làm cách nào để đặt biểu tượng máy tính để bàn của ứng dụng cho Linux: KDE, Gnome, v.v ...?

Ứng dụng của tôi ở dạng C++ và được phân phối dưới dạng nguồn để người dùng cuối sẽ biên dịch nó bằng gcc.

Nếu tôi có thể có biểu tượng được nhúng trực tiếp bên trong mã nhị phân exe của tôi, đó sẽ là tốt nhất.

Trả lời

10

Đối với Gnome và Kde, bạn có thể muốn bao gồm một tệp trên máy tính để bàn với ứng dụng của bạn xác định cách nó sẽ được khởi chạy. Thông số kỹ thuật có thể được tìm thấy here. Nếu bạn có trình cài đặt đi kèm với ứng dụng của mình, có thể bạn sẽ muốn nó tạo tệp này trên máy tính để bàn và đặt nó vào đúng vị trí để tạo mục nhập và không có gì

1

Cộng đồng KDE với loạt KDE 4 bắt đầu sử dụng CMake một hệ thống xây dựng. Họ đã phát triển macro CMake biết cách đặt biểu tượng cho ứng dụng của bạn về nền tảng (cửa sổ (được nhúng trong exe), mac (.app gói), linux (tệp .desktop), v.v.)

Có thể bạn có thể sử dụng nó.

3

Nếu bạn đang sử dụng một trong những tiền nướng F/OSS xây dựng hệ thống, chẳng hạn như hỗ trợ CMake KDE, nó thực sự khá dễ dàng khi bạn có một file .desktop:

cài đặt (FILES myapp.desktop ĐIỂM ĐẾN $ {XDG_APPS_INSTALL_DIR}) kde4_add_app_icon (myapp_SRCS "$ {} CMAKE_CURRENT_SOURCE_DIR /hi*-app-myappname.png")

Nếu bạn đang lăn của riêng bạn, hãy xem xét sử dụng xdg-utils, trong đó bao gồm các kịch bản ít tiện dụng như xdg-desktop-menu (cài đặt các mục trình đơn trên máy tính để bàn) và xdg-desktop-icon (cài đặt các biểu tượng cho máy tính để bàn) cho những thứ như vậy.

Chuẩn .desktop đã được chỉ ra trong bình luận đầu tiên, mặc dù bạn cũng có thể chỉ cần lấy một cái đã được cài đặt trên hệ thống của bạn và sửa đổi nó từ đó. Đối với các biểu tượng, PNG và SVG được hỗ trợ địa lý mặc dù PNG có xu hướng vẫn mang lại kết quả tốt nhất.

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