向图像添加工具提示

时间:2012-09-24 19:54:39

标签: python gtk tooltip pygtk

我正在尝试向图片添加工具提示。在PyGTK tutorial后,似乎这应该有效:

image = gtk.Image()
image.set_from_file(image_path)
box.pack_start(image, expand=False)

tooltip = gtk.Tooltips()
tooltip.set_tip(image, "Hello!")

除非它没有。鼠标悬停在图像上时没有任何反应。但是,我知道它适用于按钮(我运行了教程中的示例代码)。

使用GTK 2.12及更高版本,我可能只使用image.set_tooltip_text("Hello!"),但我仍然停留在2.10.4并且必须使用gtk.Tooltips

修改

根据gtk.Tooltips的{​​{3}}:

  

工具提示只能在具有自己的X窗口的小部件上设置。要检查窗口小部件是否有自己的窗口,请使用widget.flags()&gtk.NO_WINDOW。要向没有自己的窗口的窗口小部件添加工具提示,请将窗口小部件放在gtk.EventBox中,然后将工具提示添加到事件框中。

所以这解决了我的问题,但让我有点困惑。我检查了按钮的标志,它具有与图像相同的gtk.NO_WINDOW标志。那么为什么不按钮需要一个EventBox但图像呢?

1 个答案:

答案 0 :(得分:0)

为了满足它的界面,GktButton在内部为自己创建了一个事件框(好像是一个事件框)。即它捕获不可见的gdk窗口中的事件。 GtkImage没有类似的接口来满足,所以它不需要捕获事件。

使用工具提示界面时,使用工具提示界面可能无需在EventBox中嵌入按钮,或者工具提示界面实际依赖于gdk窗口是否可见,以及小部件界面缺少那种标志。

相关问题