Qt backend

Any pointers on either finding a Qt backend or writing one?

    > Thanks,

Hi Jody,

Sorry for the delay in getting back to you - I've been out of town for
a week.

There have been several people who have expressed interest in A QT
backend - most recently Ted Drain at the JPL. Perhaps you two could
coordinate your efforts?

The first place to start is in the file
matplotlib/backends/backend_template.py, which serves as a template
for backend writers and gives some instructions. I would follow the
model of one of the *Agg backends, eg TkAgg, GTKAgg, FLTKAgg and
WXAgg, which use Agg to render the image and place it in the GUI
canvas. This is a lot less work and you automiatically get the latest
matplotlib feature set for free. The basic idea is to use a GUI
independent image library that can then be reused across GUIs.

The backends have to implement concrete versions of several interface
classes: RendererBase, GraphicsContextBase, FigureCanvasBase,
FigureManagerBase, NavigationToolbar2. If you opt to use Agg (or
Cairo) to do the drawing for you, you can leave out RendererBase and
GraphicsContextBase, which are the two that require the most work.

JDH

John Hunter writes:

>
> > Any pointers on either finding a Qt backend or writing one?
> > Thanks,
>
> Hi Jody,
>
> Sorry for the delay in getting back to you - I've been out of town for
> a week.
>
> There have been several people who have expressed interest in A QT
> backend - most recently Ted Drain at the JPL. Perhaps you two could
> coordinate your efforts?

I'd be happy to work with Ted.

> The first place to start is in the file
> matplotlib/backends/backend_template.py, which serves as a template
> for backend writers and gives some instructions. I would follow the
> model of one of the *Agg backends, eg TkAgg, GTKAgg, FLTKAgg and
> WXAgg, which use Agg to render the image and place it in the GUI
> canvas. This is a lot less work and you automiatically get the latest
> matplotlib feature set for free. The basic idea is to use a GUI
> independent image library that can then be reused across GUIs.
>
> The backends have to implement concrete versions of several interface
> classes: RendererBase, GraphicsContextBase, FigureCanvasBase,
> FigureManagerBase, NavigationToolbar2. If you opt to use Agg (or
> Cairo) to do the drawing for you, you can leave out RendererBase and
> GraphicsContextBase, which are the two that require the most work.

I've also built a SWIG interface for Cairo so that I can embed it in a
Qt application.

The real reason that I am working on Cairo and matplotlib is that I
want a portable way to display output from ATT's graphviz. From my
quick look through matplotlib's code, it looks like this may be hard
to do. So, if I continue this project, I'll also be asking how to
render ploygons, ellipses, and text. Do you think that matplotlib is
a good fit given my requirements?

Matplotlib already supports Cairo rendering - it uses the Python Cairo
bindings PyCairo. For Qt to work with PyCairo I think you would just
need to write one function that connects an xlib target surface to Qt,
and then you would get all the matplotlib Cairo rendering done for free.

Steve

···

On Thu, 2004-12-09 at 13:15 -0600, Jody Winston wrote:

I've also built a SWIG interface for Cairo so that I can embed it in a
Qt application.

Jody,
I have someone working on a Qt front end (using Agg for rendering). He's only able to put in roughly 1 day/week and with the holidays coming up I'm not sure when it's going to be finished. We're looking in to the possibility of being able to contribute this back to matplotlib (if John wants it) but there are legal issues on my end that need to get resolved before I'll know if it's possible.

FYI: If you want to render the output from graphviz, have you looked at dot? The C/C++ tool doxygen uses graphviz/dot to render inheritance diagrams and place them in web pages (with click-able boxes no less).

Ted

···

At 11:15 AM 12/9/2004, Jody Winston wrote:

John Hunter writes:

>
> > Any pointers on either finding a Qt backend or writing one?
> > Thanks,
>
> Hi Jody,
>
> Sorry for the delay in getting back to you - I've been out of town for
> a week.
>
> There have been several people who have expressed interest in A QT
> backend - most recently Ted Drain at the JPL. Perhaps you two could
> coordinate your efforts?

I'd be happy to work with Ted.

> The first place to start is in the file
> matplotlib/backends/backend_template.py, which serves as a template
> for backend writers and gives some instructions. I would follow the
> model of one of the *Agg backends, eg TkAgg, GTKAgg, FLTKAgg and
> WXAgg, which use Agg to render the image and place it in the GUI
> canvas. This is a lot less work and you automiatically get the latest
> matplotlib feature set for free. The basic idea is to use a GUI
> independent image library that can then be reused across GUIs.
>
> The backends have to implement concrete versions of several interface
> classes: RendererBase, GraphicsContextBase, FigureCanvasBase,
> FigureManagerBase, NavigationToolbar2. If you opt to use Agg (or
> Cairo) to do the drawing for you, you can leave out RendererBase and
> GraphicsContextBase, which are the two that require the most work.

I've also built a SWIG interface for Cairo so that I can embed it in a
Qt application.

The real reason that I am working on Cairo and matplotlib is that I
want a portable way to display output from ATT's graphviz. From my
quick look through matplotlib's code, it looks like this may be hard
to do. So, if I continue this project, I'll also be asking how to
render ploygons, ellipses, and text. Do you think that matplotlib is
a good fit given my requirements?

-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://productguide.itmanagersjournal.com/
_______________________________________________
Matplotlib-devel mailing list
Matplotlib-devel@lists.sourceforge.net
matplotlib-devel List Signup and Options

Ted Drain Jet Propulsion Laboratory ted.drain@...179...