PyGObject - 状态图标上的左键单击菜单

Rai*_*bow 2 python gtk gnome pygobject

我开始为 Gnome 编写一个小面板小程序,我希望用户能够左键单击状态图标以查看一些选项和信息,例如类似于 Gnome 3 中的声音图标,您可以在其中设置音量通过左键单击,而通过右键单击设置首选项。右键代码是这样的:

statusicon.connect("popup-menu", right_button_click)
Run Code Online (Sandbox Code Playgroud)

right_button_click在右键单击事件中调用的函数的名称在哪里。重要的部分是"popup-menu"。设置左键单击事件的替代方法是什么?

rho*_*rho 5

这是一个展示它如何工作的小例子。

#!/usr/bin/python3

import gi
gi.require_version('Gtk', '3.0')

from gi.repository import Gtk

class TrayIcon(Gtk.StatusIcon):
    def __init__(self):
        Gtk.StatusIcon.__init__(self)
        self.set_from_icon_name('help-about')
        self.set_has_tooltip(True)
        self.set_visible(True)
        self.connect("popup_menu", self.on_secondary_click)


    def on_secondary_click(self, widget, button, time):
        menu = Gtk.Menu()

        menu_item1 = Gtk.MenuItem("First Entry")
        menu.append(menu_item1)

        menu_item2 = Gtk.MenuItem("Quit")
        menu.append(menu_item2)
        menu_item2.connect("activate", Gtk.main_quit)

        menu.show_all()
        menu.popup(None, None, None, self, 3, time)

if __name__ == '__main__':
    tray = TrayIcon()

    Gtk.main()
Run Code Online (Sandbox Code Playgroud)