[PyKDE] Kudos and Questions from a New Convert

Jim Bublitz jbublitz at nwinternet.com
Wed Nov 20 07:09:00 GMT 2002


On 20-Nov-02 John Bell wrote:

I can't answer all of your questions, as I'm not much of a RAD or
GUI-designer user myself. I haven't checked KDevelop's support for
Python lately, but there wasn't much last time I looked. I don't
have the link handy for the most recent 'eric' screenshots, but
it's an integrated editor/debugger/class browser and more and
should be released in the near future (there's an existing version
that's pretty nice, but the new version will blow you away). It's
part of the PyQt distribution at the moment and Python/PyQt based.
google on Detlev Offenbach and eric.
 
> (3) I don't want to start a war here, but is PyKDE as
> mature/complete as PyQt?  How do they compare
> generally?

I maintain PyKDE and don't offend easily, so make any nasty
comments you like :) PyKDE covers (what I think are) all of the
major KDE libs - the extra widgets of course, but also things like
KHTML, KParts, etc. The code is stable and actively maintained
(some may question that, but I swear it is). It's biggest drawback
is that it isn't sufficiently tested IMHO, but there are very few
bug reports and patches/workarounds are usually quick (workarounds
anyway). PyQt and PyKDE use exactly the same technology to do
bindings (Phil Thompson's sip) and there isn't a lot of difference
in how the bindings are generated. I've used PyKDE on a couple large
(unfinished) projects, and can't recall anything that didn't work
as advertised. Memory consumption is high - PyQt alone is probably
best for lightweight stuff.

Both projects maintain backward compatibility - you can still use
PyQt as far back as Qt1.42, and I'm still using KDE2.1.1 on some
machines, 3.0.3 on others - all the same set of files, but you
compile for specific versions. Both are also usable back to Python
1.5.2. You probably don't want to run ancient versions of any of
those, but I like the fact that we won't obsolete your code every
few months, and Phil's design makes it easy to maintain multiple
versions in a single package. sip, by it's nature, can't retain
backward compatibility as easily, but all that means is you have to
recompile occasionally if you need to stay current - your Python
code/Qt/KDE versions won't break.

The next PyKDE release will follow KDE3.1 by a few weeks (if they
don't release too soon). The current version is up to KDE3.0.4
(3.0.5 will also be out shortly). I'm in the process of re-doing
the entire PyKDE code generation process. It's going very nicely if
a little slower than I'd like. If it works well enough, there may
also be a tool to let you create your own Python bindings pretty
quickly and easily.

There's very little that can be covered in Python for PyKDE that
isn't. The biggest deficiency I see is that while you can import
KParts, you can't create them easily in Python. There are ways
around that, but they're further down the list than some other
stuff I'm working on for PyKDE.

> (5) On another topic, can I display a large image
> (larger than the screen or widget size) in a widget
> with scroll bars, or am I constrained to resizing the
> image to fit or losing content due to clipping?

I haven't done it, but don't know why you couldn't.
 
> (6) Regarding the online book on PyQt development, is
> it available in an easily dowloadable form somewhere? 
> I'd like to print it out and read it at leisure rather
> than staring at the screen all day!

Boudewijn will be along shortly :) You can buy a copy from the
publisher - don't know about the d/l and print.
 
> Thanks in advance for your indulgence!  Once I'm
> through reading the remaining 3000 or so pages my
> questions should get a bit more specific and up to
> date.

Be sure to get the Qt and KDE class reference docs - our docs only
cover the differences/exceptions, not the details. The Qt/KDE docs
are C++ oriented, but shouldn't be hard to follow. Also, if you
compile PyQt or PyKDE, be sure to use the -c command line switch to
build.py (assuming you have something more than 128MB of RAM) -
cuts the compile time by about 80%.

I'm hoping to do a lot of improvements in release turnaround time,
docs, and testing over the next few months. We'll see how far I get
before the weather turns nice again :)

Welcome

Jim




More information about the PyQt mailing list