How to change the desktop icon in Qt?
-
I am very new to Qt. I am trying to find a way to change the desktop icon.
from this
to this

I know there is a official document about this, but it is very confusing. Can anyone give me a step by step guide on how to change the application icon? I am using Linux system.Here is what I did.
I create a folder named icons in the resources folder.
Copy the image under the icons folder.The following is my code
in main.cppint main(int argc, char** argv) { QApplication app(argc, argv); app.setWindowIcon(QIcon(":/statistic-icon.png")); ...icons.qrc
<!DOCTYPE RCC> <RCC version="1.0"> <qresource> <file>icons/statistic-icon.png</file> </qresource> </RCC>Thanks in advance.
-
It's easy: You need to create a text file
myproject.desktopwith the following content:[Desktop Entry] Version=1.0 Name=My Project Exec=/home/gjiang/myproject/myproject-executable %first_argument Terminal=false Icon=/home/gjiang/myproject/myproject-icon.png Type=ApplicationSave the file to your desktop folder and that was it :-)
-
You need to adjust the file's content depending on the paths where the executable and the icon are stored on the target machine. You will do that programmatically but not with Qt. It depends on your package format (rpm, deb, etc) and the tools you're using to build the packages.
-
I just did this under Linux yesterday. A couple of things to note from @Wieland's solution:
- It is indeed correct that you need to create a
.desktopfile to control desktop icon. Qt'ssetWindowIcononly sets the icon shown for the window, and has no effect on the desktop. - To do it "programatically", you need to actually create & write text to that file, through normal file writing code.
- The icon is purely an external file, it's not embedded in your Qt code. If you move your application elsewhere, you need to take the icon file with it.
- Relative paths specified in
Exec&Iconlines are relative to user's home directory. So you could remove your/home/gjiang/from each one, which may make it easier to move to a different user/system. (You can not use~,$HOMEor${HOME}in.desktopfile entries.) - Under Ubuntu GNOME desktop at least, the default location for user
.desktopfiles is~/.local/share/applications. I don't know about "Save the file to your desktop folder", but I put mine in that directory. The default location for icons is~/.local/share/icons, and if you put your icon there your.desktopcan set theIconline to plainmyproject-icon.png. - On a separate note, if your application cares about what the current directory is (e.g. for reading/writing files), you could add a
Path=...line into.desktopfile. Again that accepts a relative path, soPath=myprojectwould put any user in their~/myprojectdirectory.
- It is indeed correct that you need to create a