PyQt4 - link 滑块的范围到绘图轴的范围

PyQt4 - link the extent of a slider to the extent of a plotting axis

使用 PyQt4 和 matplotlib 如何 link 滑块的范围(即长度)与相同 window 中绘图轴的范围,使得滑块具有相同的长度作为绘图轴,即使 window 被重新缩放?

您可以使用 ax.get_xlim()ax.get_ylim()matplotlib 图中获取轴的范围。这些 returns 一个 tuple 包含该轴在 数据坐标 中的最小值和最大值。使用数据坐标的优点是无论绘图缩放比例如何,它们都保持不变。

Qt 自动缩放 QSlider 的范围以将 min/max 值置于滑块的极限。因此,您可以简单地使用轴限制值来设置 QSlider 的范围,以获得滑块位置与轴上位置之间的 1:1 关系。

 xlims = ax.get_xlim()  # e.g. (0, 200)

 slider = QSlider()
 slider.setRange(*xlims)  # unpack the tuple into setRange
                          # alternatively slider.setRange(xlims[0], xlims[1])