首页 > 系统相关 >linux快捷方式-中标麒麟

linux快捷方式-中标麒麟

时间:2023-07-25 11:56:24浏览次数:36  
标签:bin Exec 麒麟 start sh linux 快捷方式 DIR

在中标麒麟上部署软件,需要快捷方式。在桌面创建快捷方式后,有时候会发现界面图标显示不全。

先把原先的快捷方式贴出来,再往下讨论:

可执行程序目录脚本 A_start.sh

#!/bin/bash
CUR_DIR=/home/3D/bin/Debug
export LD_LIBRARY_PATH=$CUR_DIR:LD_LIBRARY_PATH
$CUR_DIR/MGIAP

 

桌面快捷方式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

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

 

标签:bin,Exec,麒麟,start,sh,linux,快捷方式,DIR
From: https://www.cnblogs.com/warmlight/p/17579439.html

相关文章

  • Linux基础30 HTTP协议, 请求信息, 请求方法, 状态码, 请求头信息
    HTTP协议HTTP协议概述1.什么是HTTPHTTP全称:HyperTextTransferProtocol中文名:超文本传输协议HTTP协议简单的说,将用户请求的页面从服务器传输到客户端浏览器,浏览器进行解析,解析以后变成一个我们人类可以理解的方便观看的页面2.什么是超文本包含有超链接(Link)和......
  • Centos8/linux下载、安装、配置、连接MySQL5.7(rpm方式)
    目录问题现象:问题分析:解决方法:下载:安装:配置:连接:拓展 问题现象:    今天在使用Centos8安装MySQL5.7的rpm包时,出现如下报错:        仓库"MySQL5.7CommunityServer"的GPG公钥已安装,但是不适用于此软件包。        最终问题解决了,但......
  • Linux下的I2C驱动
    1.Linux中I2C需要编写的驱动......
  • linux 路由网关问题
       关于linux的默认网关默认网关是一个用于TCP/IP协议的配置项,是一个可直接到达的IP路由器的IP地址。配置默认网关可以在IP路由表中创建一个默认路径。一台主机可以有多个网关。默认网关的意思是一台主机如果找不到可用的网关,就把数据包发给默认指定的网关,由这个......
  • Linux必备技能-vim编辑器深入讲解(9)
    vim编辑器我们说过vim是文本编辑器,什么是文本编辑器呢?简单来讲我们从名字上就能知道它能实现编辑文本的,但这里我们要强调一个概念文本,这里的文本指的是纯文本信息。所谓纯文本站在ASCII的角度来讲,它指的是必须是纯粹的不加任何修饰的文本信息。比如我们此前都接触过的字处理工......
  • Linux驱动:I2C驱动
    一、前言I2C协议是在开发中使用非常频繁的一种协议,相信大家在学习单片机的时候经常会用到支持I2C协议的模块,I2C总线仅仅使用SCL、SDA这两根信号线就实现了设备之间的数据交互,极大地简化了对硬件资源和PCB板布线空间的占用。因此,I2C总线被非常广泛地应用在EEPROM、实时钟、......
  • linux I2C驱动
    1.linuxIIC驱动由于裸机的驱动迎合驱动的分离和分层的思想,分为IIC主机驱动(接口驱动)和IIC设备驱动.这种思想的好处,请看我写的另外一篇文章Linux驱动的分离和分层。其中上面说的裸机驱动请看这篇文章裸机驱动但是裸机的驱动是没有加入操作系统的本文也是遵循Linux驱动的分离和......
  • 4 STM32MP1 Linux系统启动过程
    1.ROM代码  这是ST官方写的代码,在STM32MP1出厂时就已经烧录进去,不能被修改。ROM代码是上电以后首先执行的程序,它的主要工作就是读取STM32MP1的BOOT引脚电平,然后根据电平来判断当前启动设备,最后从选定的启动设备里面读取FSBL代码,将FSBL代码放在对应的RAM空间。  STM32MP1启......
  • 一分钟学一个 Linux 命令 - rm
    前言大家好,我是god23bin,欢迎回到咱们的《一分钟学一个Linux命令》系列,今天我要讲的是一个比较危险的命令,rm命令,没错,你可以没听过rm命令,但是删库跑路你不可能没听过吧?什么?没听过,没事,现在你就听过了,我刚刚已经讲了,哈哈哈。好了,废话不多说,现在开始吧!什么是rm?rm是单词rem......
  • linux 中 grep命令精准匹配制表符
     001、[root@PC1test02]#lsa.txt[root@PC1test02]#cata.txt##测试数据321971225792194632197622553381184532197222609449473219872253144109......