views:

346

answers:

2

My next work is going to be heavily focused on working with data that is best understood when organized on a two-dimensional zoomable plane or canvas, instead of using lists and property forms.

The library can be based on OpenGL, GTK+ or Cairo. It should allow me to:

  • build widgets out of vector shapes and text (perhaps even SVG based?)
  • arrange these widgets on a 2D plane
  • catch widget-related events
  • zoom deeply into a widget to reveal additional data
  • arrange widgets in a tree
  • animate widgets fluidly

It wouldn't hurt if it would also allow for some databinding or model/view concept.

+3  A: 

Qt has this covered... check PyQt

Javier
I want to use GTK+ since it feels native on Ubuntu, the primary target platform.
paniq
Qt now (for a while) has had a QGtkStyle which makes it look completely native even on Gnome, as in other window managers.See: http://labs.trolltech.com/blogs/2008/05/13/introducing-qgtkstyle/
ChristopheD
Thanks for the hint, QGtkStyle solves another problem of mine. But now that I had a look at PyQt, I'm seriously put off. Certainly the library has everything, but I think that custom types, C++ signatures and signal handlers with type infos feel too weird to be considered. I stick to what I know ;)
paniq
+2  A: 

I think Clutter is perfect for you.

From the web site:

Clutter is an open source software library for creating fast, visually rich and animated graphical user interfaces.

Clutter is written in C, but it has great Python bindings.

A very similar project is Pigment:

Pigment is a 3D scene graph library designed to easily create rich application user interfaces.

Manuel Ceron
Worked with clutter before, and had a few issues with stability but I guess there is no way around it. Will also have a look at Pigment.
paniq