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()