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