PyQt4 - связать экстент ползунка с экстентом оси построения

Используя PyQt4 и matplotlib, как связать экстент (т. Е. Длину) ползунка с экстентом оси графика в том же окне, чтобы длина ползунка совпадала с осью графика, даже если окно масштабируется?

1 ответ

Вы можете получить пределы оси в matplotlib сюжет с использованием ax.get_xlim() или же ax.get_ylim(), Эти возвращает 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])
Другие вопросы по тегам