2

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 グラフに基づいています。

ツールチップ ウィンドウをマウス ポインタの横に移動する方法を教えてもらえますか?

4

1 に答える 1

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)
于 2012-05-23T10:26:07.533 に答える