Ubuntu实现双击图标运行自己的应用软件

news2024/11/25 11:01:20

我们知道在Ubuntu上编写程序,最后编译得到的是一个可执行文件,大致如下

然后要运行的时候在终端里输入./hello即可

但是这样的话感觉很丑很不方便,下边描述一种可以类似Windows上那种双击运行的实现方式。

我们知道Ubuntu是有一些自带的程序的,它们都带有好看的图标,并且在桌面上点击一下即可运行,接下来我们就往这个方向去实现。

首先假设已经有一个可执行文件hello了,我们新建一个hello.sh

#!/bin/bash
/home/yml/Documents/QT_Sony/hello/hello 
read -s -n1 -p "Press any key to exit..."

这时候我们要执行hello.sh,依然是在终端输入./hello.sh,直接点击是无法运行的 

我们设置hello.sh的属性,允许其按program方式执行

设置文件夹属性

到这里还是没什么反应,接下来新建一个hello.desktop

[Desktop Entry]
Version=1.0
Name=hello
Comment=hello
Exec=gnome-terminal -e "bash -c '/home/yml/Documents/QT_Sony/hello/hello.sh;$SHELL'"
Terminal=false
X-MultipleArgs=false
Type=Application
Icon=/home/yml/Documents/QT_Sony/hello/SONY.ico
StartupNotify=true

然后chmod 777 hello.desktop赋予权限

然后sudo cp hello.desktop /home/yml/Desktop,可以看到桌面多了个文件,查看属性并Allow Launching,带图标了,双击后即可运行hello程序

如果拷贝到/usr/share/applications/下, 系统桌面就会出现hello的快捷方式,点击即可运行

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2236703.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【GPTs】Email Responder Pro:高效生成专业回复邮件

博客主页: [小ᶻZ࿆] 本文专栏: AIGC | GPTs应用实例 文章目录 💯GPTs指令💯前言💯Email Responder Pro主要功能适用场景优点缺点 💯小结 💯GPTs指令 Email Craft is a specialized assistant for cra…

阿里云ECS服务器使用限制及不允许做的事情

阿里云ECS(Elastic Compute Service)是一种高性能的弹性计算服务,允许用户在云端创建和管理虚拟服务器。尽管ECS提供了强大的功能,但在使用过程中,阿里云有一些限制和不允许的行为。以下是一些主要的使用限制和禁止行为…

《Atomic Picnic》进不去游戏解决方法

Atomic Picnic有时候会遇到进不去游戏的情况,这可能是由多种原因造成的,玩家可以采取很多解决方法,比如检查电脑配置、更新系统和驱动或验证游戏文件。 Atomic Picnic进不去游戏怎么办 检查电脑配置 查看自己的电脑配置是否达到了游戏的要求…

Fastify Swagger:自动化API文档生成与展示

在现代软件开发中,API文档的生成和维护是一个不可或缺的环节。Fastify Swagger 是一个专为 Fastify 框架设计的插件,它能够自动生成符合 Swagger(OpenAPI v2 或 v3)规范的文档,从而帮助开发者轻松创建和维护API文档。本…

Nuxt3之使用lighthouse性能测试及性能优化实操

lighthouse性能测试工具 什么是 LightHouse 呢 Lighthouse 是一个开源的自动化工具,用于提高网页的质量。可以通过浏览器的开发者工具运行,也可以作为命令行工具或 Node.js 模块集成到持续集成系统中。Lighthouse 可以帮助开发者: 性能优化…

基于单片机的自动充电蓝牙智能台灯的设计

本设计以单片机为主要控制芯片,主要包括主控模块,显示模块,蓝牙模块,ADC转换信号模块,红外感应模块,光敏模块,充电模块等多功能设计。台灯分为自动模式与手动模式,自动模式开启时&am…

Linux操作系统:学习进程_对进程概念的深入了解

目录 前言 开篇 一、进程概念 二、进程的描述与管理 1、如何描述与管理 2、Linux中的PCB-task_struct 3、对进程组织的理解 三、进程的属性 1、系统创建进程 2、查看进程 3、进程的标识符 4、退出进程 1>ctrlc 2>kill命令杀死进程 5、用户进程的创建方式…

PointMamba: A Simple State Space Model for Point Cloud Analysis——点云论文阅读(10)

此内容是论文总结,重点看思路!! 文章概述 这篇文章提出了PointMamba,一种基于状态空间模型(SSM)的点云分析方法,通过引入线性复杂度算法来实现高效的全局建模。与传统基于Transformer的点云方…

【LLM】【LLaMA-Factory】:Qwen2.5-Coder-7B能力测评

1 前期准备工作 1.1 环境概述 大模型框架:LLaMA-Factory CG客户端镜像:hiyouga/LLaMA-Factory/LLaMA-Factory / v4 cpu 架构 核心数 线程数 频率 内存使用情况 操作系统 GPU:四张4090显卡 CUDA python 以及相关依赖包 pytorch 1.2 数据准…

OpenAI CEO阿尔特曼预测AGI可能在五年内出现 对社会的影响远小于预期

OpenAI 不断探索人工智能及其所蕴含的技术可能性的工作已经引起了相当大的反响,用户和科技界都对其新发布的模型及其所蕴含的先进性着迷。 在公司大力发展 AGI(人工通用智能)的同时,许多知名公司的关键员工也加入了 OpenAI&#x…

AI周报(11.3-11.9)

AI应用--商务会议旅游必备 AI同传翻译耳机 作为一个经常出差和旅游的人,我深知语言不通带来的困扰。每次在国外旅行,面对不同语言的环境,总是让人头疼不已。幸好,现在有了AI同传翻译耳机,出门在外也能轻松交流。 时空…

qt QCompleter详解

1、概述 QCompleter是Qt框架中的一个类,用于为文本输入提供自动完成功能。它可以与Qt的输入控件(如QLineEdit、QTextEdit等)结合使用,根据用户的输入实时过滤数据源,并在输入控件下方或内部显示补全建议列表。用户可以…

为什么分布式光伏规模是6MW为界点

安科瑞 华楠 近日,能源局发布定义分布式光伏6MW及以上的光伏电站必须自发自用,自行消纳。多省能源局规定大于6MW的电站必须按集中式管理,另外大于6MW(包含)要省级审批,小于则由市级审批,10kV线…

【青牛科技】GC8549替代LV8549/ONSEMI在摇头机、舞台灯、打印机和白色家电等产品上的应用分析

引言 在现代电子产品中,控制芯片的性能直接影响到设备的功能和用户体验。摇头机、舞台灯、打印机和白色家电等领域对控制精度、功耗和成本等方面的要求日益提高。LV8549/ONSEMI等国际品牌的芯片曾是这些产品的主要选择,但随着国内半导体技术的进步&…

分析报告、调研报告、工作方案等的提示词

什么是提示词? 提示词的英文是Prompt,是你与人工智能(AI)进行交流的方式。简单来说,提示词就是你给AI的一段文字或问题,AI根据这段文字或问题来生成回应或完成任务。 举个例子:假设你在使用一…

Embedding 技术在推荐系统中的应用

参考自《深度学习推荐系统》——王喆,用于学习和记录。 介绍 Embedding,中文直译为“嵌入”,常被翻译为“向量化”或者“向量映射”。它的主要作用是将稀疏向量转换成稠密向量,便于上层深度神经网络处理。事实上,Emb…

解决Postman一直在转圈加载无法打开问题的方法

在使用Postman这款强大的API测试工具时,有时可能会遇到程序长时间加载而无法正常使用的情况。面对这样的问题,可以尝试以下几种解决办法: 方法一:直接运行Postman可执行文件 定位到Postman的安装目录 如果您不确定Postman的具体安…

机器学习—训练细节

首先回忆如何训练一个逻辑回归模型,建立一个Logistic回归模型是:你将指定如何计算输出给定输入特征x和参数w和b,在逻辑回归函数预测f(x)g,它是应用于w*xb的Z状结肠函数,所以如果znp.dot(w,x)b,f_x1/(1np.ex…

bert-base-uncased处理文档

1.安装必要的库 确保安装 transformers 和 torch 库: pip install transformers torch 2.加载本地 BERT 模型和分词器 由于已将模型和分词器下载到本地,可以指定文件路径加载。确保路径与本地文件结构一致。 from transformers import BertTokenizer…

Python http打印(http打印body)flask demo(http调试demo、http demo、http printer)

文章目录 代码解释 代码 # flask_http_printer.pyfrom flask import Flask, request, jsonify import jsonapp Flask(__name__)app.route(/printinfo, methods[POST]) def print_info():# 分隔符separator "-" * 60# 获取请求头headers request.headers# 获取 JS…