2011-10-02 65 views
0

请看下面的代码片段:当光标悬停时,我可以自定义pygtk工具提示吗?

import gtk 

    def callback(widget, x, y, keyboard_mode, tooltip): 
     hbox = gtk.HBox(False, 8) 
     button = gtk.Button('Exit Tooltip') 
     label = gtk.Label('Tooltip text') 
     hbox.pack_start(label) 
     hbox.pack_start(button) 
     hbox.show_all() 
     tooltip.set_custom(hbox) 
     return True 

    label = gtk.Label('Test label') 
    label.set_has_tooltip(True) 
    label.connect('query-tooltip', callback) 

在这里,我已经创建了一个自定义的提示关闭按钮在里面。现在我想要它停留,直到我点击关闭按钮。搜索谷歌是没有那么有用。除此之外,我还想知道工具提示关闭时发出的信号/事件

类似的问题都顺利处理了JQuery的/的JavaScript/AJAX提示等,但对于 GTK /pygtk的没有运气:(

在此先感谢...

回答

0

我也有这个问题,据我所知,没有任何方法来确定工具提示保持多久。

我做了什么(并向您推荐)是,您可以制作自己的“工具提示”,并通过事件箱将背景颜色设置为黄色或您想要的任何颜色。确保你没有显示它。这只是一个简化的代码,因为您需要自己在项目中定位和调整它的大小。

color = gtk.gdk.rgb_get_colormap().alloc_color('black') 
ebTooltip = gtk.EventBox() 
btnTooltip = gtk.Button("Close") 
ebTooltip.add(btnTooltip) 
ebTooltip.modify_bg(gtk.STATE_NORMAL, color) 

现在,您只需要通过回调来隐藏和显示此事件框。要显示它,叫......

ebTooltip.show() 

而且,隐藏它(可能在“点击”关闭按钮的事件)......

ebTooltip.hide() 

希望可以解决您的问题!

+0

并定义'enter-notify-event'和'leave-notify-event'处理程序来显示/隐藏您的工具提示。 – saeedgnu

相关问题