On Jul 17, 2005, at 11:36 PM, Phil Thompson wrote:
I am curious. I have noticed, or it has been brought to my attention,
that it it has become a bit unusual that the PyQt source package
supports all versions of qt, back to 2.3. In the interest of writing
sip code for qt 4, Is there any particular reason why all qt versions
are supported in one package? wouldn't it be a good idea to branch
the project at least at major versions?
PyQt supports all versions of Qt back to 1.44. All versions are
supprted
in one package because it's easier for me to do it that way. There
was a
time when the code generated by SIP supported all versions of Qt
(through
millions of #if's) but that was in the days when I didn't
distribute the
.sip files.
It looks to me like there are enough symantic differences in qt4 that
now would be a good time to consider such a change. The reason I'm
bringing this up is that the thought had crossed my mind to help in
writing some of the sip code for qt4, but having looked at the <=3
code (size, version compensation, and I'm a little reluctant to. If
we were looking at schlepping sip code from pyqt3.x to pyqt4.x, and
writing appropriate new code, it would look a little more attractive.
However, PyQt4 will be different as it is being written using
something
called MetaSIP. This is a GUI tool (written using PyQt of course) that
parses the C++ header files and creates a database of the whole
API. It
allows you to enable/disable individual classes/functions of the API,
annotate individual arguments etc, and spits out .sip files. It can
also
compare different versions of an API and generate the necessary %If
directives.
Good grief. The GUI will make it more attractive, the parser could
push sip straight into SWIG's shoes. wow.
I'm not going to bother moving PyQt3 to MetaSIP as Qt 3.x is now very
mature and it's just not worth it. However, I do anticipate that
PyQt4,
PyQt5 etc will all be built from the same MetaSIP database.
What are the toughest bottlenecks going be for finishing MetaSIP?
Will the only work for PyQt4 be modifying the MetaSip "output"? Is
this a project that could use some help? If so, what kind?
Phil
_______________________________________________
PyKDE mailing list [email protected]
http://mats.imk.fraunhofer.de/mailman/listinfo/pykde