Python PyGObject:单个按钮,一个操作用于左键单击,另一个操作用于右键单击?

Python PyGObject:单个按钮,一个操作用于左键单击,另一个操作用于右键单击?,python,gtk,pygobject,Python,Gtk,Pygobject,我有一个PyGObject应用程序(Python,GTK+)在左键单击按钮时执行操作 现在,右键单击时,该按钮不起任何作用 我想让按钮在右键单击时执行不同的操作 在PyGObject中有这样做的方法吗 现在,我得到的是: def setup_gui_objects(self):

我有一个PyGObject应用程序(Python,GTK+)在左键单击按钮时执行操作

现在,右键单击时,该按钮不起任何作用

我想让按钮在右键单击时执行不同的操作

在PyGObject中有这样做的方法吗

现在,我得到的是:


    def setup_gui_objects(self):                                                                                                     
        """Set up GUI objects."""                                                                                                    
        # pylint: disable=cell-var-from-loop                                                                                         
        self.buttons = {}                                                                                                            
        for button_type in ['Run']:                                                                                                  
            # prints byte strings of hostnames and command names:                                                                    
            # print(self.dict_[b'name'])                                                                                             
            toggle_button = Gtk.ToggleButton(label=to_ascii(self.dict_[b'name']))                                                    
            self.buttons[button_type] = MyButton(toggle_button, self.selected)                                                       
            self.buttons[button_type].set_name(self.color)                                                                           
            self.buttons[button_type].connect('toggled', lambda widget: self.toggle_selected(button_type, widget))                   
谢谢。

您可以使用信号和
事件按钮来检查是否按下了左(
1
)或右(
3
)按钮

import gi

gi.require_version("Gtk", "3.0")
from gi.repository import Gtk


class MyWindow(Gtk.Window):
    def __init__(self):
        Gtk.Window.__init__(self)

        button = Gtk.Button()
        button.connect("button_press_event", self.on_button_clicked)
        self.add(button)

    def on_button_clicked(self, widget, event):
        if event.button == 1:
            print("Left click")
        elif event.button == 3:
            print("Right click")


win = MyWindow()
win.connect("destroy", Gtk.main_quit)
win.show_all()
Gtk.main()