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

可执行程序目录更改位置了,只修改快捷方式的指向目录就可以

 

posted @ 2023-07-25 11:40  阳光下的小土豆  阅读(271)  评论(0编辑  收藏  举报