Tôi đã tạo một tập lệnh python đơn giản khi chạy sẽ hiển thị biểu đồ matplotlib được nhúng bên trong cửa sổ PyQT. Tôi đã sử dụng hướng dẫn this để nhúng và chạy biểu đồ. Ngoài một số khác biệt trong các quy ước đặt tên và trong giao diện người dùng chung, biểu đồ của tôi được tạo chính xác như một trong hướng dẫn đã đề cập. Vấn đề của tôi là tôi muốn làm cho một đồ thị tương tác cho phép phóng to và kéo, nhưng tôi muốn làm điều này chỉ với con chuột (nhấp và kéo, cuộn bánh xe, vv) và không có thanh công cụ (như tôi thấy nó xấu xí).Đồ thị tương tác Matplotlib được nhúng trong PyQt
Widget Class:
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)
Vẽ chức năng (chạy trên nút bấm):
# 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()