2012-05-23 52 views
2

我已经建立了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

我找到了解决办法:

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)