Python 与 Gtk3:如何显示弹出菜单?

问题描述 投票:0回答:1

我创建了一个名为 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()

执行时没有任何错误,但不显示菜单。

我期待右键单击时显示弹出菜单。

python-3.x gtk3
1个回答
0
投票

问题是bind_model()的第二个参数应该与menu.append()中使用的相同。

像这样:

self.bind_model(menu, 'popup')
© www.soinside.com 2019 - 2024. All rights reserved.