Gio.MenuItem 的工具提示和信号

Tootip and signal of Gio.MenuItem

以下是关于同一组件的两个问题:

  1. 鼠标经过Gio.MenuItem时触发哪个信号?
  2. 如何为 Gio.MenuItem 实现工具提示?

Gio.MenuItemGObject.GObject 的直系后代(参见 https://lazka.github.io/pgi-docs/Gio-2.0/classes/MenuItem.html)。它本身没有任何信号,仅通过从 GObject 下降接收到 notify 信号。

由于 Gio.MenuItem 不是小部件,因此它不会从 GUI 接收任何信号。它只代表数据(那是不透明的数据)。

我怀疑你想要 Gtk.MenuItem,这是视觉组件。

编辑 您要找的小部件似乎是 Gtk.PopoverMenu。需要说明的是,Gio.MenuItem 不是可见项,这就是我如上回复的原因。 Gtk.PopoverMenu 是一个小部件(小部件 = 可见 项)。

PopoverMenu是可见的widget,you can see how it fits together with other widgets。它继承自 Popover,继承自 Gtk.BinGtk.Container,最后继承自 Gtk.Widget

因此,您拥有来自这些小部件的所有信号,但这些信号针对的是 'complete' Gtk.PopoverMenu,而不是针对个别项目。

根据 to this definition,各个项目是 Gtk.ModelButton,因此您可以通过这种方式访问​​它们。

得到这个的解决方案比我想象的要深入得多。我一直怀疑 Devhelp 的菜单无法使用 GtkPopoverMenu 构建,因为我的 OS 使用 gtk 3.14。该解决方案涉及 运行 应用程序的全新概念,由 Gtk.Application 界面和 Gtk.Action 功能提出。这些 "new" 概念可以在以下地方学习。

http://python-gtk-3-tutorial.readthedocs.io/en/latest/application.html?highlight=Gtk.Application

https://wiki.gnome.org/HowDoI/GtkApplication

https://github.com/Programmica/python-gtk3-tutorial/blob/master/_examples/application.py

显然工具提示功能不适用于此菜单类型。