怎么在Linux系统中创建一个自定义的系统托盘指示器?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
在Ubuntu/薄荷/Debian上安装:
<代码> sudo apt-get安装gir1.2-appindicator3 代码>
在Fedora上安装:
<代码> sudo dnf安装libappindicator-gtk3 代码>
对于其他发行版,只需要搜索包含“appindicator”的包就行了。
在GNOME Shell 3.26开始,系统托盘图标被删除了。你需要安装这个扩展(或者其他扩展)来为桌面启用该功能,否则你无法看到我们创建的指示器。
<>强基础代码强>
下面是该指示器的基础代码:
# !/usr/bin/python import 操作系统 得到gi.repository import  Gtk as  gtk, AppIndicator3 as appindicator def main ():=,,indicator  appindicator.Indicator.new (“customtray",,“semi-starred-symbolic",, appindicator.IndicatorCategory.APPLICATION_STATUS) ,indicator.set_status (appindicator.IndicatorStatus.ACTIVE) 菜单,indicator.set_menu (()) ,gtk.main () def 菜单():=,,menu  gtk.Menu ()=,,command_one  gtk.MenuItem (& # 39; My 笔记# 39;) ,command_one.connect(& # 39;激活# 39;,,请注意) ,menu.append (command_one)=,,exittray  gtk.MenuItem (& # 39; Exit 托盘# 39;) ,exittray.connect(& # 39;激活# 39;,,退出) ,menu.append (exittray) ,menu.show_all () return 菜单 def 注意(_): ,os.system (“gedit $ HOME/文件/notes.txt") def 退出(_): ,gtk.main_quit () if __name__ ==,“__main__": 之前,main () >我们待会会解释一下代码是怎么工作的。但是现在,让我们将该文本保存为托盘。py,然后使用Python运行之:
<代码> Python托盘。py 代码>
我们会看到指示器运行起来了,如下图所示:
创建一个定制的系统托盘指标任务> indicator =, appindicator.Indicator.new (“customtray",“semi-starred-symbolic",
appindicator.IndicatorCategory.APPLICATION_STATUS):这里我们指明创建一个名为customtray的新指示器。这是指示器的唯一名称,这样系统就不会与其他运行中的指示器搞混了。同时我们使用名为semi-starred-symbolic的图标作为指示器的默认图标。你可以将之改成任何其他值,比如firefox(如果你希望该指示器使用firefox的图标),或任何其他你想用的图标名。最后与<代码> APPLICATION_STATUS> 代码相关的部分是指明指示器类别/范围的常规代码。
<代码> indicator.set_status (appindicator.IndicatorStatus.ACTIVE)> 代码:这一行激活指示器。
indicator.set_menu(菜单()):这里说的是我们想使用菜单()函数(我们会在后面定义)来为我们的指示器创建菜单项。这很重要,可以让你右击指示器后看到一个可以实施行为的列表。
gtk.main():运行GTK主循环。
在菜单()中我们定义了想要指示器提供的行为或项目。command_one=gtk.MenuItem(& # 39;我的笔记# 39;)仅仅使用文本“笔记”来初始化第一个菜单项,接下来command_one.connect(& # 39;激活# 39;,注意)将菜单的激活信号与后面定义的注意()函数相连接;换句话说,我们告诉我们的系统:“当该菜单项被点击,运行注意()函数”。最后,menu.append (command_one)将菜单项添加到列表中。
exittray相关的行是为了创建一个退出的菜单项,以便让你在想要的时候关闭指示器。
menu.show_all()以及返回菜单只是返回菜单项给指示器的常规代码。
在注意(_)下面是点击“我的笔记”菜单项时需要执行的代码。这里只是<代码> os.system(“中$ HOME/文件/notes.txt") 代码>这一句话;操作系统。系统函数允许你在Python中运行shell命令,因此这里我们写了一行命令来使用中打开家目录下文件目录中名为笔记。txt的文件,例如,这个可以称为你今后的日常笔记程序了!
添加你所需要的任务
你只需要修改代码中的两块地方:菜单()
所以,比如说你想要创建一个新菜单项,在点击后,会使用VLC播放硬盘中某个特定的视/频音频文件?要做到这一点,只需要在第17行处添加下面三行内容:
command_two =, gtk.MenuItem (& # 39; Play 视频/音频# 39;) command_two.connect(& # 39;激活# 39;,,玩) menu.append (command_two)怎么在Linux系统中创建一个自定义的系统托盘指示器