[Bf-python] Pure Python GUI

Jonathan Merritt j.merritt at pgrad.unimelb.edu.au
Sun Mar 2 12:55:07 CET 2008


Greetings Pythonites,

I have heard some rumors about better Python GUI support coming out of  
the Apricot project.  Does anyone know what the plan is in that area,  
and the timeline?  Campbell? :-)

I have been working on a proof-of-concept for a Python GUI that runs  
inside Blender (similar to the goo project, although aiming to be more  
of an all-rounder).  Initially, I have built a component hierarchy,  
drawing canvas and event system that all go together to simulate  
Python panels.  Here is a video of the system in action:
     http://www.youtube.com/watch?v=tERvnJEKg7o
The GUI is surprisingly responsive (any "stickyness" is a result of  
screen cast and YouTube).  Some things don't work properly yet, but  
about 98% of the functionality of Blender's button panels is there.

The code is *not* yet ready for public consumption, so I will be  
tidying it up over the next few weeks, aiming at an initial release  
around Easter.  In the mean time, the project is hosted at Google Code:
     http://pycomponents.googlecode.com
(Use Source->Browse->Trunk to get to SVN.)

The GUI uses a full component / event model, based on the ideas from  
Java/Swing (although quite modified to become more Python-esque).  I  
don't think I have it all correct yet, but this proof-of-concept shows  
that a system like this can be fast enough to be indistinguishable  
from the C implementation of panels (which was my primary concern).   
Once my python panels have been re-written and documented properly,  
I'll integrate the current Blender.Draw() components into them.

The question is: am I wasting my time with this in the long run, and  
will Python GUIs become *much* better in the near future (with things  
like automated layout, etc.)?  What are the general thoughts?

Thanks,

Jonathan Merritt.




More information about the Bf-python mailing list