我正在尝试向图片添加工具提示。在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()>k.NO_WINDOW
。要向没有自己的窗口的窗口小部件添加工具提示,请将窗口小部件放在gtk.EventBox中,然后将工具提示添加到事件框中。
所以这解决了我的问题,但让我有点困惑。我检查了按钮的标志,它具有与图像相同的gtk.NO_WINDOW
标志。那么为什么不按钮需要一个EventBox但图像呢?
答案 0 :(得分:0)
为了满足它的界面,GktButton在内部为自己创建了一个事件框(好像是一个事件框)。即它捕获不可见的gdk窗口中的事件。 GtkImage没有类似的接口来满足,所以它不需要捕获事件。
使用工具提示界面时,使用工具提示界面可能无需在EventBox中嵌入按钮,或者工具提示界面实际依赖于gdk窗口是否可见,以及小部件界面缺少那种标志。