如何将 gtk4 PopoverMenu 附加到父窗口小部件?

How to attach a gtk4 PopoverMenu to a parent widget?

这应该很简单,但我似乎无法弄明白。如果我构建一个 Gtk.PopoverMenu:

menu = Gio.Menu.new()
test = Gio.MenuItem.new(label='test', detailed_action='win.test')
menu.append_item(test)
popup = Gtk.PopoverMenu.new_from_model(menu)

我不知道如何将它附加到父窗口小部件(在我的例子中是一个 ListBox 项)。 API docs 说“Popovers are attached to a parent widget”但是似乎没有相关的方法可以将它附加到父级。尝试 popup.popup() 会导致警告“在不在顶层 window 内的小部件上调用 gtk_widget_realize() 不会很好地工作。小部件必须在顶层容器内在意识到它们之前”,以及随后的段错误。

要设置 PopoverMenu 的父级,只需使用其 set_parent() 方法将父级设置为任何小部件:

...
popup = Gtk.PopoverMenu.new_from_model(menu)
popup.set_parent(parent_widget)