LInux下配置QT程序添加图标,并可以双击运行

  在使用QT编程后,如果想发布添加图标,在Windows下可以直接使用Qt自带的工具:windeployqt;而在Linux下则不行,这里记录一下怎么配置生成一个可以有图标的运行程序。

参考:https://blog.csdn.net/weixin_41985655/article/details/83070085?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.control&dist_request_id=79dfb185-6393-40e7-b024-d21fd6a787ca&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.controlhttps://blog.csdn.net/ACK_ACK/article/details/102548160?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.control&dist_request_id=67f12e44-2edf-4917-b5b4-7e8674dc9cd9&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.controlhttps://help.ubuntu.com/community/UnityLaunchersAndDesktopFiles

1.新建一个文件夹,把QT生成的程序与需要显示的图标照片复制到该文件夹

  注意:你复制过来的图片程序,在当前用户下需要有执行权限,如果没有需要修改用户文件权限,不然会出现无法形成图标或者无法执行程序的情况。

  

 2.在该文件夹使用脚本获取应用程序依赖库

   用vim命令新建一个 ***.sh 脚本文件(***是你自己起的脚本名称),文件添加内容如下:

#! /bin/bash    
EXE='Demo'  #这里是你要执行的QT程序名    
PWD=`pwd`    
files=`ldd $EXE | awk '{ if(match($3,"^/"))    
        printf("%s "),$3 }'`    
cp $files $PWD

  保存脚本退出,使用 chmod +x ***.sh 改变脚本执行权限,使用 sudo ./***.sh 运行脚本,运行后脚本会把该应用程序用到的依赖库复制到当前目录下,效果如下:

  

  注意:如果你的程序调用到了自己编写的动态链接库,需要你自己手动把自己的动态链接库复制到该文件夹,这个脚本不会复制你自己编写的动态链接库过来。

3.建立桌面启动器,并添加通过启动器图标,形成可双击执行的程序

  使用vim命令在该文件夹上建立一个后缀为desktop的文件,例如 vim xxx.desktop,编辑输入一下内容

[Desktop Entry]
Type=Application
Exec=/.../Demo        # "..."是需要运行的程序/脚本路径;Demo是改程序/脚本名(必加);这里不单可以运行程序,还可以改为运行脚本,把程序放脚本里运行,同时在脚本里执行一些其他操作,例如下面的test.sh脚本
Name=xxx              #这个是你运行后,要显示出来的程序名称,不需要跟QT程序的名称相同
GenericName=photo     #这里是你要用的图标名称
Icon=/.../photo.png   # '...' 是你复制到文件夹里要用的图标照片路径;photo.png 是你照片的名称,这里一定要添加这个照片名称,不然会找不到照片无法形成图标
Terminal=false
Categories=Development;

  如果你还想在执行程序前进行一些其他操作,可以添加用vim编写一个脚本,把上面的 xxx.destop 里运行的程序改为运行脚本,这里以 test.sh 为例子如下所示:

#!/bin/bash

#这些地方可以添加一些其他操作,例如配置环境之类的

cd /.../  #你的程序路径

./Demo  #运行你的QT程序  

4.修改权限

chmod +x Demo

chmod +x xxx.desktop

chmod +x test.sh #如果你在脚本里执行程序的,还需要把脚本权限修改了

5.双击 xxx.desktop启动程序

  

  注意:双击后该 xxx.desktop 图标程序虽然看不到了 .desktop 后缀,但它的后缀还是存在的,它的文件并不是你运行xxx .desktop 文件后显示的文件,还是你一开始的那个xxx.desktop文件名,只是隐藏了而已,你在命令台操作该文件时还是要加后缀的。

6.后续你只需要直接双击该图标程序,就可以直接执行你的QT程序了

原文地址:https://www.cnblogs.com/xingboy/p/14456051.html