2012-05-23 54 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)