2016-04-25 75 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])