Я создал простой скрипт python, который при запуске должен отображать встроенный график matplotlib внутри окна PyQT. Я использовал this учебник для встраивания и запуска графика. Помимо некоторых различий в соглашениях об именах и в общем пользовательском интерфейсе мой график генерируется точно так же, как в упомянутом руководстве.Интерактивный график Matplotlib, встроенный в PyQt
Моя проблема заключается в том, что я хотел бы сделать это интерактивным графиком, который позволяет масштабировать и перетаскивать, но я хотел бы сделать это только с помощью мыши (щелчка и перетаскивание, колесо прокрутки и т. Д.) И без панели инструментов (как я считаю это уродливым).
Widget Класс:
class MplCanvas(FigureCanvas):
"""
Creates a canvas on which to draw our widgets
"""
def __init__(self):
self.fig = Figure()
self.ax = self.fig.add_subplot(111)
FigureCanvas.__init__(self, self.fig)
FigureCanvas.setSizePolicy(self, QtGui.QSizePolicy.Expanding,QtGui.QSizePolicy.Expanding)
FigureCanvas.updateGeometry(self)
class marketdephWidget(QtGui.QWidget):
"""
The market deph graph
"""
def __init__(self, parent = None):
QtGui.QWidget.__init__(self, parent)
self.canvas = MplCanvas()
self.vbl = QtGui.QVBoxLayout()
self.vbl.addWidget(self.canvas)
self.setLayout(self.vbl)
Plotting функция (работает на нажатие кнопки):
# initialize the mplwidgets
def PlotFunc(self):
randomNumbers = random.sample(range(0, 10), 10)
self.ui.widget.canvas.ax.clear()
self.ui.widget.canvas.ax.plot(randomNumbers)
self.ui.widget.canvas.draw()