Hi!

Am 05.11.2010 um 15:57 schrieb Gaƫtan Podevijn:
> Maybe could you take a look at matplotlib [1]  ?
> 
> [1] http://matplotlib.sourceforge.net

Oh, good idea - I'll attach some code for embedding MPL plots in PyQt.  IIRC 
this is just a refactored / more bare-bone version of something I found on the 
web.

HTH,
  Hans

[resent to the list, did not mean to send privately]
from matplotlib.backends.backend_qt4agg import FigureCanvasQTAgg as FigureCanvas
from matplotlib.figure import Figure

from PyQt4.QtCore import QSize
from PyQt4.QtGui import QSizePolicy

class MPLWidget(FigureCanvas):
    """Ultimately, this is a QWidget (as well as a FigureCanvasAgg, etc.)."""

    __slots__ = ("_figure", "_axes", "_minimumSizeHint")

    def __init__(self, parent = None, width = 5, height = 4, dpi = 100,
                 minimumSize = QSize(128, 128), bgcolor = None):
        # find camouflage background color:
        if parent and bgcolor is None:
            bg = parent.palette().color(parent.backgroundRole())
            bgcolor = (bg.red()   / 255.0,
                       bg.green() / 255.0,
                       bg.blue()  / 255.0)

        # create MPL figure:
        self._figure = Figure(
            figsize = (width, height), dpi = dpi,
            facecolor = bgcolor, edgecolor = bgcolor)

        FigureCanvas.__init__(self, self._figure)
        self.setParent(parent) # FigureCanvas.__init__ has no parent argument :-(

        self._axes = self._figure.add_subplot(111)

        self.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)

        self._minimumSizeHint = minimumSize

    def figure(self):
        return self._figure

    def sizeHint(self):
        w = self._figure.get_figwidth()
        h = self._figure.get_figheight()
        return QSize(w, h)

    def minimumSizeHint(self):
        return self._minimumSizeHint
_______________________________________________
PyQt mailing list    [email protected]
http://www.riverbankcomputing.com/mailman/listinfo/pyqt

Reply via email to