[PyKDE] Re: Qt/Windows announcement

Phil Thompson phil at riverbankcomputing.co.uk
Tue Feb 8 10:12:02 GMT 2005


> On Monday 07 February 2005 08:40, Phil Thompson wrote:
>> > Doug Bell wrote:
>> > If PyQt follows the same policy, it will be more than perfect for
>> general
>> > purpose projects.
>
>> It will, although I'm making no promises as to when PyQt for Qt v4 will
>> be
>> available.
>
> Just out of curiousity, are you planning on putting Qt 4 in the same file
> set
> as Qt 3, or do you expect it will be a separate set of files? Do you
> expect
> many changes to sip (eg - something similar in scope to moc/QObject
> stuff),
> or is sip positioned well to handle it?

I anticipate that SIP will require very few changes.

I have not yet decided how compatible PyQt 4 will be with PyQt 3,
particularly with respect to the module structure. Qt 4 has broken the Qt
library into separate parts, and my instinct is to mirror this structure.
This would also allow me to put everything under a single Qt directory in
site-packages - the current "structure" is a mistake I've wanted to
correct for many years.

When you wrap an API to production quality you must look at each API call
individually - particularly for object ownership and GIL issues. There is
no shortcut to this - you can't automate it. It's easy to deal with
changes between minor Qt versions (3.2 to 3.3, 3.3.1 to 3.3.2) as a diff
on the header files will identify the changes without too much noise.
Dealing with major versions (ie. Qt 4) is on a completely different scale
- I suspect it's easier to start from scratch.

I do have an internal tool (called metasip) for generating SIP files from
header files. This uses gcc-xml to create an XML representation of the API
and has a GUI interface for adding the annotations, handwritten code etc.
It also provides facilities for managing the process of wrapping an API.
With this I expect the production of PyQt 4 to be much easier than (say)
PyQt 3. Consequently, to answer your question, the .sip files will be
different.

Phil




More information about the PyQt mailing list