linux快捷方式-中标麒麟
在中标麒麟上部署软件,需要快捷方式。在桌面创建快捷方式后,有时候会发现界面图标显示不全。
先把原先的快捷方式贴出来,再往下讨论:
可执行程序目录脚本 A_start.sh
#!/bin/bash CUR_DIR=/home/3D/bin/Debug export LD_LIBRARY_PATH=$CUR_DIR:LD_LIBRARY_PATH $CUR_DIR/MGIAP
方式1和方式2选用一种即可。
桌面快捷方式1:
[Desktop Entry] Type=Application Version=1.0 Name=MGIAP Comment=Run MGIAP Exec=sh /home/3D/bin/Debug/A_start.sh Icon=/home/3D/bin/Debug/logo.ico Terminal=false
桌面快捷方式2:
#!/bin/bash Exec=/home/3D/bin/Debug/A_start.sh exec $Exec #/home/3D/bin/Debug/A_start.sh
经测试,发现:如果图片用了相对路径,可能导致程序找不到图标。如qss中使用:
#QProgressDialog{ background-color: transparent; border-image: url("../data/skin/image/bg_small.png"); }
下面说几种解决方法:
1、创建qrc资源文件,将图标编译进程序中,上述路径更改为:
#QProgressDialog{ background-color: transparent; border-image: url(":/data/skin/image/bg_small.png"); }
2、所有图标使用绝对路径。你肯定不愿意这么搞的。
3、在main函数中添加:
QDir::setCurrent(QApplication::applicationDirPath());
经测试上述方法可解决文中提到的找不到图标的问题。
另外,感觉每次更改应用程序路径,得修改桌面快捷方式和A_start.sh两个文件,想简化一下。
可将A_start.sh改为
#!/bin/bash if [[ $0 = ~ ^\/.* ]] then Exec=$0 else Exec=$(pwd)/$0 fi Exec=$(readlink -f $Exec) Exec_DIR=${Exec%/*} echo $Exec echo $Exec_DIR export LD_LIBRARY_PATH=$Exec_DIR:LD_LIBRARY_PATH $Exec_DIR/MGIAP
可执行程序目录更改位置了,只修改快捷方式的指向目录就可以