PyGTK:移动自定义构建工具提示窗口

时间:2012-05-23 07:37:28

标签: python matplotlib pygtk

我已经在其中构建了带有matplotlib图的PyGTK应用程序。我也想使用自定义的工具提示窗口。工具提示值根据图表上的鼠标位置而变化。

我的问题是,我无法移动鼠标旁边的工具提示窗口,因为我不知道如何在屏幕上显示鼠标位置

这是我的剥离代码:

def figPrepare(self):   #initialize graph
        #figure preparation stuff

        #custom tooltip window
        tooltip = gtk.Window(gtk.WINDOW_POPUP)
        lbl = gtk.Label()
        tooltip.add(lbl)
        lbl.show()

        figure.canvas.set_tooltip_window(tooltip)
        figure.canvas.props.has_tooltip = True
        #events
        figure.canvas.mpl_connect('figure_enter_event',lambda w: tooltip.show())
        figure.canvas.mpl_connect('motion_notify_event',lambda w: self.updateTooltip(tooltip, lbl))
        figure.canvas.mpl_connect('figure_leave_event',lambda w: tooltip.hide())


    def updateTooltip(self, win, lbl):
        lbl.set_text(str(time.time()))
        win.move(w.x, w.y)

此代码移动工具提示窗口,但值基于matplotlib图,而不是屏幕中的绝对位置。

有人能指出我如何移动鼠标指针旁边的工具提示窗口吗?

1 个答案:

答案 0 :(得分:1)

我找到了解决方案:

def updateTooltip(self, win, lbl):
    lbl.set_text(str(time.time()))
    x, y, mods = win.get_screen().get_root_window().get_pointer()   #this gets absolute mouse possition on screen
    win.move(x+15, y+10)