我创建了一个名为 Menu 的类:
class Menu(Gtk.PopoverMenu):
def __init__(self):
Gtk.PopoverMenu.__init__(self)
# Creates a Gio.MenuModel object
menu = Gio.Menu.new()
menu.append('Test 1', 'popup.test1')
menu.append('Test 2', 'popup.test2')
# Takes Gio.MenuModel as it's first parameter
self.bind_model(menu, 'contextMenu')
def show_menu(self):
self.popup()
我从另一个类实例化这个类,如下所示:
elif event.type == Gdk.EventType.BUTTON_PRESS and event.button == 3:
popup = Menu()
popup.show_menu()
执行时没有任何错误,但不显示菜单。
我期待右键单击时显示弹出菜单。
问题是bind_model()的第二个参数应该与menu.append()中使用的相同。
像这样:
self.bind_model(menu, 'popup')