2012-09-24 92 views
0

我正在嘗試向圖像添加工具提示。繼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

編輯

按照documentationgtk.Tooltips

工具提示只能有他們自己的X窗口小部件進行設置。要檢查小部件是否有自己的窗口,請使用widget.flags()&gtk.NO_WINDOW。要向沒有自己窗口的窗口小部件添加工具提示,請將該窗口小部件放置在gtk.EventBox中,然後將事件提示添加到事件框中。

因此,這解決了我的問題,但讓我有點困惑。我檢查了一個按鈕的標誌,它具有相同的gtk.NO_WINDOW圖像標誌。那麼爲什麼不按鈕需要一個事件框,但圖像呢?

回答

0

爲了滿足它的接口,GktButton在內部創建了一個事件框(就像事件框一樣)。即它捕獲不可見的gdk窗口中的事件。 GtkImage沒有類似的界面來滿足,所以它不需要捕捉事件。

也許是按鈕的內部實現的事故,使用工具提示界面時不嵌入在事件盒的按鈕或者可能提示接口工作實際上取決於一個GDK窗口,無論是可見或不可見,並在widget界面缺乏一個旗幟。