2016-04-25 3 views
1

Mit PyQt4 und Matplotlib kann ich die Ausdehnung (dh Länge) eines Schiebers mit der Ausdehnung einer Diagrammachse im selben Fenster verknüpfen, so dass der Schieberegler hat die gleiche Länge wie die Diagrammachse, selbst wenn das Fenster neu skaliert wird?PyQt4 - die Ausdehnung eines Schiebers mit der Ausdehnung einer Zeichenachse verbinden

+0

Dies ist ein Qt Slider oder ein mpl.widgets Slider? – tacaswell

+0

Es ist ein Qt-Schieberegler – fen

+0

@fen Hat meine Antwort Ihr Problem gelöst? – mfitzp

Antwort

0

Sie können die Grenzen einer Achse in einem matplotlib Diagramm mit ax.get_xlim() oder ax.get_ylim() abrufen. Diese gibt eine tuple mit dem minimalen und maximalen Wert für diese Achse in Datenkoordinaten zurück. Der Vorteil der Verwendung von Datenkoordinaten besteht darin, dass sie unabhängig von der Skalierung des Diagramms gleich bleiben.

Hilfreiche Qt skaliert automatisch den Bereich , um die Min/Max-Werte an der Grenze des Schiebereglers zu setzen. Daher können Sie einfach die Achsengrenzwerte verwenden, um den Bereich für so festzulegen, dass eine 1: 1-Beziehung zwischen der Position des Schiebereglers und der Position auf der Achse besteht.

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]) 
Verwandte Themen