[PyQt] ANN: dip v0.1 Released - An Application Development Framework for PyQt and Python v3

Phil Thompson phil at riverbankcomputing.com
Sat Jul 17 22:55:14 BST 2010


On Sat, 17 Jul 2010 21:09:04 +0200, Antonio Valentino
<antonio.valentino at tiscali.it> wrote:
> Hi Phil,
> 
> Il giorno Sat, 17 Jul 2010 18:02:57 +0100
> Phil Thompson <phil at riverbankcomputing.com> ha scritto:
> 
>> dip v0.1 has been released. This is the first release of dip, an
>> application development framework for PyQt and (for the moment at
>> least) Python v3.
>> 
>> The user documentation, including tutorials and a full API reference
>> is available at
>> http://www.riverbankcomputing.com/static/Docs/dip/index.html
>> 
>> dip is suitable for developing simple utilities and large scale,
>> complex applications. It includes the following features...
> 
> [...]
> 
> first of all congratulations for the great job.
> 
> I have still not finished to read the docs but it seems to me that many
> of the features provided by dip are also present in the enthought
> framework (Traits, Envisage, etc.).

Agreed. I've worked with Enthought for several years and did the original
port to PyQt amongst other things. There is a lot of good stuff in it.

> I would like to ask you why you decided to develop a new framework and
> which are advantages/drawbacks of using dip instead of enthought.

There were many reasons to create a new framework, one being the need for
Python v3 support and the desire to use Python v3 features.

Another significant reason was the way that the Enthought stuff implements
toolkit independence, ie. the compromises it makes in order to support wx
and PyQt. As a PyQt programmer you often end up being frustrated that you
can't get your GUIs to do what you want because TraitsUi is getting in the
way.

In dip, QWidgets are first class objects. When you create a GUI you get a
QWidget, not something that wraps a QWidget in an API that is designed to
support wx. Another example (which you'll understand if you are familiar
with Traits) is that dip allows you to do...

class MyClass(QObject, Model):
    ...

...where Model is the dip equivalent of HasTraits.

Of course the Enthought stuff is very mature and has lots of stuff that
dip doesn't have - for example it is very good for engineering applications
that need 2D and 3D visualisation.

Phil


More information about the PyQt mailing list