From 2166a5827c72b2e2f3f1acf2843e6b5b054bc697 Mon Sep 17 00:00:00 2001 From: marques Date: Wed, 17 Dec 2025 15:45:21 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96X=E8=BD=B4=E8=81=94=E5=8A=A8?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=EF=BC=8C=E5=A2=9E=E5=BC=BA=E5=90=8C=E6=AD=A5?= =?UTF-8?q?=E5=A4=84=E7=90=86=E9=80=BB=E8=BE=91=EF=BC=8C=E9=81=BF=E5=85=8D?= =?UTF-8?q?=E5=9B=9E=E8=B0=83=E5=86=B2=E7=AA=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- func/Module_precisely_align.py | 33 ++++++++++++++++++++------------- 1 file changed, 20 insertions(+), 13 deletions(-) diff --git a/func/Module_precisely_align.py b/func/Module_precisely_align.py index cab4006..481355b 100644 --- a/func/Module_precisely_align.py +++ b/func/Module_precisely_align.py @@ -494,18 +494,25 @@ class MainWindow_precisely_align(QMainWindow): self.ax0.set_title("JJIV") self.ax1.set_title("RRIV") - def on_xlim_changed(ax): - if ax is self.ax0: - x0, x1 = ax.get_xlim() - self.ax1.callbacks.disconnect('xlim_changed') - self.ax1.set_xlim(x0, x1) - self.ax1.callbacks.connect('xlim_changed', on_xlim_changed) - elif ax is self.ax1: - x0, x1 = ax.get_xlim() - self.ax0.callbacks.disconnect('xlim_changed') - self.ax0.set_xlim(x0, x1) - self.ax0.callbacks.connect('xlim_changed', on_xlim_changed) + self._syncing_xlim_change = False + def on_ax0_xlim_changed(ax): + if self._syncing_xlim_change: + return + if ax is self.ax0: + self._syncing_xlim_change = True + x0, x1 = ax.get_xlim() + self.ax1.set_xlim(x0, x1) + self._syncing_xlim_change = False + + def on_ax1_xlim_changed(ax): + if self._syncing_xlim_change: + return + if ax is self.ax1: + self._syncing_xlim_change = True + x0, x1 = ax.get_xlim() + self.ax0.set_xlim(x0, x1) + self._syncing_xlim_change = False if self.data.BCG_early: Jpeak = Jpeak - self.data.approximately_align_pos @@ -556,8 +563,8 @@ class MainWindow_precisely_align(QMainWindow): label=Constants.PRECISELY_ALIGN_PLOT_LABEL_RRIV) self.ax1.xaxis.set_major_formatter(Params.FORMATTER) - self.ax0.callbacks.connect('xlim_changed', on_xlim_changed) - self.ax1.callbacks.connect('xlim_changed', on_xlim_changed) + self.ax0.callbacks.connect('xlim_changed', on_ax0_xlim_changed) + self.ax1.callbacks.connect('xlim_changed', on_ax1_xlim_changed) self.ax0.legend(loc=Constants.PLOT_UPPER_RIGHT)