私が思いついた最善の方法は、NavigationToolbarを親としてカスタムナビゲーションツールバーを作成することです。次に、カスタムバージョンに信号を追加し、描画メソッドをオーバーライドしました。このようにして、元の描画メソッドを呼び出し、NavigationToolbarデータ構造から必要な情報があれば私の信号を送出することができます。
class NavigationToolbarCustom(NavigationToolbar):
zoom_changed = pyqtSignal(float, float, name='zoomChanged')
def __init__(self, canvas, parent):
NavigationToolbar.__init__(self, canvas, parent)
#super(NavigationToolbarCustom, self).__init__(self, canvas, parent)
def draw(self):
super(NavigationToolbarCustom,self).draw()
if self._xypress == None:
home_view = self._views.home()
Xmin,Xmax = home_view[0][0:2]
else:
lastx, lasty, a, ind, lim, trans = self._xypress[0]
Xmin,Xmax=a.get_xlim()
self.zoom_changed.emit(Xmin,Xmax)