私が思いついた最善の方法は、NavigationToolbar を親とするカスタム ナビゲーション ツールバーを作成することです。次に、カスタム バージョンにシグナルを追加し、draw メソッドをオーバーライドしました。このようにして、元の draw メソッドを呼び出して、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)