我可以让自定义的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中就没那么幸运了 :(
提前谢谢大家...
1 个回答
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()
希望这能解决你的问题!