2016-04-25 63 views
1

使用PyQt4和matplotlib如何将滑块的范围(即长度)与同一窗口中绘图轴的范围关联起来,使得即使窗口重新缩放,滑块的长度也与绘图轴相同吗?PyQt4 - 将滑块的范围链接到绘图轴的范围

+0

这是一个Qt滑块或mpl.widgets滑块吗? – tacaswell

+0

这是一个Qt滑块 – fen

+0

@fen我的答案解决了你的问题吗? – mfitzp

回答

0

使用ax.get_xlim()ax.get_ylim()可以在matplotlib图中获得轴的极限。这些将返回tuple,其中包含数据坐标中该轴的最小值和最大值。使用数据坐标的优点是它们保持不变,而不管绘图的缩放比例。

帮助Qt自动缩放QSlider的范围,以将最小/最大值置于滑块的极限位置。因此,您可以简单地使用轴限制值来设置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])