如何在python中编写Appindicators?


22

我正在尝试尝试开发一些简单的指标,例如numlock / capslock和brigthness等。如何在python中创建指标?是否有任何教程可指导我编写第一个指示符(例如快速入门的应用程序)?有没有像快速模板一样容易启动的解决方案?


尤其是pyqt5或pygi和python3的指示符(也可以在unity之外使用)。
Mateo 2014年

Answers:


12

您可以在此处找到编写应用指标的页面:

也可以看看:

在该页面上,您会找到指向Python和API文档中的示例的链接。Quickly中的ubuntu-application模板应包含有关使用appindicators的示例。祝好运!


谢谢!我希望第一次尝试时可以获得更多分步教程,但我会尽一切努力。如果有人知道其他教程,我将暂时保留这个问题。
DoGoDo '11

您将在developer.ubuntu.com/get-started上找到了一个入门指南-查阅参考资料部分以获得更多内容!developer.ubuntu.com/resources/app-developer-cookbook/unity
David Planella 2012年

谢谢@DavidPlanella,我看了该教程,以开始使用普通程序,但是它甚至没有提到指标。另一个链接也没有。
DoGoDo '11

您对这里的示例不了解吗?这是一个straightforwarded,简单,工作示例(在回答环节采取)developer.ubuntu.com/resources/technologies/...
蒂莫

2
类似或相同这里的问题- askubuntu.com/questions/108035/...
fossfreedom

7

我认为@fossfreedom提到使用Python,GIR和GTK3编写指标,涵盖了如何为Unity创建指标。(读一号)

我正在使用Ubuntu 14.04,Quickly 12.08.1。这是从Quickly模板构建完整工作示例的演示。

  1. OP仅需要指示器(而不是完整的GUI应用程序),因此让我们从ubuntu-cli Quickly模板开始:

    quickly create ubuntu-cli indicator-demo

    它可能会在此模板中引发针对未发布的错误修复程序(bug#1064110)的错误消息:

    Creating project directory indicator-demo
    Creating bzr repository and committing
    Launching your newly created project!
    Traceback (most recent call last):
    ...
    OSError: [Errno 13] Permission denied
    ERROR: create command failed
    Aborting

    修复权限

    cd indicator-demo/
    chmod +x bin/indicator-demo

    测试

    $ quickly run
    I'm launched and my args are:
  2. Ubuntu Wiki有一个很好的PYGI示例:Application Indicators。集成起来应该很容易。

    打开进行编辑:

    quickly edit
    • 修改__init__.py,添加需要的模块导入:

      from gi.repository import Gtk
      from gi.repository import AppIndicator3 as appindicator
    • main()函数之间:

      print _("I'm launched and my args are: %s") % (" ".join(args))
      logging.debug(_('end of prog'))

      加:

      ind = appindicator.Indicator.new_with_path (
                          _("Indicator demo for Quickly"),
                          "indicator-demo-icon-normal",
                          appindicator.IndicatorCategory.APPLICATION_STATUS,
                          indicator_democonfig.get_data_path())
      ind.set_status (appindicator.IndicatorStatus.ACTIVE)
      ind.set_attention_icon ("indicator-demo-icon-attention")
      
      # create a menu
      menu = Gtk.Menu()
      
      # create one item 
      menu_items = Gtk.MenuItem(_("Quit"))
      menu.append(menu_items)    
      # this is where you would connect your menu item up with a function:
      menu_items.connect("activate", Gtk.main_quit )    
      # show the item
      menu_items.show()
      
      ind.set_menu(menu)
      
      Gtk.main()
  3. 将图标添加到新创建的数据文件夹中:

    mkdir data

    我从已安装的软件包中复制了一些图标,仅作为示例:

    cp /usr/share/icons/ubuntu-mono-dark/status/22/indicator-messages.svg data/indicator-demo-icon-normal.svg
    cp /usr/share/icons/ubuntu-mono-dark/status/22/indicator-messages-new.svg data/indicator-demo-icon-attention.svg
  4. 测试一下:

    quickly run
  5. 创建包并发布:

    quickly package
    quickly share --ppa your-ppa

笔记:

  1. 好吧,我没有更新debian软件包控制文件,但是依赖项已自动添加到生成的DEB中:

    Package: indicator-demo
    Version: 0.1
    Architecture: all
    Maintainer: UNKNOWN <UNKNOWN>
    Installed-Size: 57
    Depends: python (>= 2.7), python (<< 2.8), python:any (>= 2.7.1-0ubuntu2), gir1.2-gtk-3.0, gir1.2-appindicator3-0.1
    Section: python
    Priority: extra
    Description: UNKNOWN
     UNKNOWN

    此外,软件包中还包含了先前在数据文件夹中添加的图标。

  2. 我之前遇到过类似的案例,如何在Unity面板中添加键盘修改器状态小程序?。答案包含使用libappindicator的示例/原型键盘指示器(但使用c编程语言)。

    libappindicator缺少重要的功能,该功能很容易移植其他桌面指示器。图标只能从路径加载。请参阅错误#812067所需的API:pixbuf图标设置支持

参考文献:

相关问题:


3

链接将教您使用python + unity创建一个基本的新邮件指示器,该指示器可与GMail一起使用。这将为您提供applet基本结构的坚实基础,同时提供一个可以轻松扩展的真实示例(尽管很简单)。它一步一步地完成了最后的脚本。
是另一个使用代码注释的python程序,使用 Pygtk

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.