from PyQt4.QtCore import QSize from PyQt4.QtGui import QSizePolicy, QWidget, QHBoxLayout from matplotlib.backends.backend_qt4agg import FigureCanvasQTAgg as FigureCanvas from matplotlib.figure import Figure import mpl_toolkits.mplot3d.axes3d as plt3 class Mpl3dCanvas(FigureCanvas): def __init__(self, parent=None, width = 10, height = 12, dpi = 60): self.fig = Figure(figsize = (width, height), dpi=dpi) FigureCanvas.__init__(self, self.fig) FigureCanvas.setSizePolicy(self, QSizePolicy.Expanding, QSizePolicy.Expanding) FigureCanvas.updateGeometry(self) self.ax = plt3.Axes3D(self.fig) self.ax.hold(True) def sizeHint(self): w, h = self.get_width_height() return QSize(w, h) def minimumSizeHint(self): return QSize(100, 100) class Mpl3dWidget(QWidget): def __init__(self, parent = None): QWidget.__init__(self, parent) self.canvas = Mpl3dCanvas() #self.toolbar = MyNavigationToolbar(self.canvas, self.canvas, direction = 'v') self.hbox = QHBoxLayout() #self.hbox.addWidget(self.toolbar) self.hbox.addWidget(self.canvas) self.setLayout(self.hbox) self.axes = self.canvas.ax def paintEvent(self, event): self.canvas.draw()