系统托盘图标仍然是一个了不起的功能。只需右键单击图标并选择所需的操作,您就可以大大简化您的生活并减少日常活动中的大量无用点击。说到有用的系统托盘图标,很容易想到Skype、Dropbox和VLC:然而,系统托盘图标实际上要有用得多;您可以创建自己的系统托盘图标以满足您的需要。本指南将教您通过几个简单的步骤来做到这一点。先决条件我们将在Python中实现自定义系统托盘指示器。Python可能已经默认安装在所有主要的Linux发行版上,因此您只需要确保它已安装(此处使用2.7版)。另外,我们还需要安装gir1.2-appindicator3包。这个库允许我们轻松创建系统图标指示器。在Ubuntu/Mint/Debian上安装:sudoapt-getinstallgir1.2-appindicator3在Fedora上安装:sudodnfinstalllibappindicator-gtk3对于其他发行版,只需搜索包含“appindicator”的软件包。从GNOMEShell3.26开始,系统托盘图标被移除。您需要安装此扩展(或其他扩展)才能为桌面启用此功能。否则您将无法看到我们创建的指标。基本代码这是该指标的基本代码:#!/usr/bin/pythonimportosfromgi.repositoryimportGtkasgtk,AppIndicator3asappindicatordefmain():indicator=appindicator.Indicator.new("customtray","semi-星号符号”,appindicator.IndicatorCategory.APPLICATION_STATUS)indicator.set_status(appindicator.IndicatorStatus.ACTIVE)indicator.set_menu(menu())gtk.main()defmenu():menu=gtk.Menu()command_one=gtk。MenuItem('我的笔记')command_one.connect('activate',note)menu.append(command_one)exittray=gtk.MenuItem('ExitTray')exittray.connect('activate',quit)menu.append(exittray)menu.show_all()返回菜单defnote(_):os.system("gedit$HOME/Documents/notes.txt")defquit(_):gtk.main_quit()if__name__=="__main__":main()我们稍后会解释代码是如何工作的。但现在,让我们将此文本保存为tray.py,并使用Python运行它:pythontray.py我们将看到指示器工作,如下图所示:为您在Linux上的任务创建自定义系统托盘指示器现在,让我们来解释一下这个魔法是如何工作的:前三行代码仅用于指定Python的路径和导入所需的库。defmain():这是指标的主要功能。此函数的代码用于初始化和创建指标。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(menu()):这表示我们要使用menu()函数(我们将在稍后定义)为我们的指标创建菜单项。这很重要,因为它允许您右键单击指示器以查看可以执行的操作列表。gtk.main():运行GTK主循环。在menu()中,我们定义了我们希望指示器提供的行为或项目。command_one=gtk.MenuItem('MyNotes')只使用文本“我的笔记”来初始化第一个菜单项,然后command_one.connect('activate',note)将菜单的激活信号连接到note()函数;换句话说,我们告诉我们的系统:“当这个菜单项被点击时,运行note()函数”。***,menu.append(command_one)将菜单项添加到列表中。与exittray相关的行是创建一个退出菜单项,让您可以在需要时关闭指示器。menu.show_all()和returnmenu只是将菜单项返回给指示器的常规代码。下面note(_)是点击“我的笔记”菜单项时需要执行的代码。这里只是一句os.system("gedit$HOME/Documents/notes.txt");os.system函数可以让你在Python中运行shell命令,所以这里我们写一行命令使用gedit打开主目录下的Documents目录下一个名为notes.txt的文件。比如这个以后可以叫你的日常笔记程序!要添加您需要的任务,您只需要修改代码中的两个地方:在menu()中为您想要的任务定义新的菜单项。创建一个新函数以在单击菜单项时执行特定操作。那么,假设您想创建一个新的菜单项,单击该菜单项时,将使用VLC从您的硬盘驱动器播放特定的视频/音频文件?为此,只需在第17行添加以下三行:command_two=gtk.MenuItem('播放视频/音频')command_two.connect('activate',play)menu.append(command_two)然后在第30行:defplay(_):os.system("vlc/home/
