GUI Programming with
      Python and Qt

Quick Links

Python index
Database Objects
Kura (now maintained by Peter Bouda)
CGI scripting and MySQL
Python + KDE Tutorial
Python + KDE Resources
PyKDE example programs
Python and Qt2
PyKDE and PyQt news
A population simulation with Stackless Python
Drift: a language simulation in Python
Anonymous CVS access

  • 30-03-2000 - Redesign
  • 02-11-1999 - Creation

© 1999 Boudewijn Rempt

Resources for the Python/KDE/Qt programmer

There really is ample documentation on programming with Python and KDE/Qt available on the web, and it's quite possible that you have already parts of it on your hard-disk, like the KDE library documentation. However, I think it could be quite handy to have a list of the most important resources.

Like all lists of links, this list could very well be out of date even before I type the final </html>. If you see a link that doesn't work, please, please, inform me! I try to check all links with webchecker, I promise.

Software design

You can't make large programs without doing some design, and being aware of the solutions other developers have already thought out. At least, that's what I'm beginning to realize after five years in the business...

  • One of the books I'm getting a lot of use out of is Design Patterns by Gamma, Helm, Johnson and Vlissides. It's pretty clear and usable, even though you have to remember that the editor they describe in the case study was incredibly awful. I suggest you support Python and buy it from the PSA bookshop. This book has even reached the pages of Visual Basic Journal...
  • Another classic worth the asking price is Code Complete, by Steve Connely (Microsoft Press - better books than software ;-), which is very, very practical, if dated a bit. If you start out with his bibliography you'll quickly arrive at classic authors like Booch and Jacobsen.
  • Interface design

    If you're writing a KDE application you must absolutely try to conform to the interface standards, even if you think some of the standards are silly. Apart from the KDE interface standards, there is much general literature on the subject.

  • KDE Interface standards. This is the best document on the KDE standards.
  • Another document on the KDE interface standards.
  • The Interface hall of shame is a must-read, absolutely.
  • The Microsoft Guidelines for Interface design is a very good book, and it is very interesting to see how Microsoft constantly deviates from its owen guidelines in order to provide interfaces that look new and different, creating the illusion that all the competing applications are old-fashioned and dowdy looking.
  • Internationalisation

    Internationalisation is difficult topic, and I haven't yet succeeded in tackling it in Python and KDE. For now, you will have to find your own way. I suggest you start at, which will lead you to all kinds of information about KDE internationalisation issues.

  • The GNU gettext program will filter C programs for internationalisationable strings.
  • There is a Python gettext program, which I have adapted to KDE. The author is Barry Warsaw and you can find the original version at:
  • Python resources

    Python is an easy and clear language. However, I think the same can't be said of its documentation. The standard Python tutorial (which I'm sure you will already have - otherwise get it from is only now beginning to make sense to me, and the library reference is often too terse.

  • Steve Noble has pointed me to the following two places:
  • At the PSA bookshop you can buy lots of different Python books. I've personally tried two:

  • Programming Python, by Mark Lutz. This is rather dated, not very organized, and doesn't do a good job of explaining the features of the language. Instead, it feels like a generaling structured programming course.
  • Internet Programming with Python, by Watters, Rossum and Ahlstrom. This book is also quite dated, has a horrible layout, and spends far too much time telling us that something won't work according to our expectations, instead of telling us what works.
  • Neither of these books explains really clearly the difference between objects and classes, while still making clear that a class is an object, too.

    Perhaps the new book, Learning Python, also by Mark Lutz, is better, and you can find quite decent sample chapters at O'Reilly.

    Qt resources

    The basic place to find information about Qt is Troll Tech, of course.

  • The Qt documentation will already be on your harddisk - possibly at /usr/lib/qt/doc/html, or /usr/local/qt/doc/html/index.html, depending upon the installation of Qt.
  • O'Reilly has recently published a book on Qt 1.44, by Mathias Kalle Dalheimer, which is very well spoken of. I don't know that it offers something beyond the on-line docs, but at least you take it with you on the train.

    KDE resources

  • style management
  • The file system standard
  • kdevelop offers a lot of good tutorials and can whip up a framework quite quickly, which you can easily translate to Python. Pity it doesn't support developing with Python!
  • The KDE library documentation is essential, too.
  • Other kde documentation from

    PyKDE/PyQt resources

  • There is a mailing list for PyKDE/PyQt developers that's quite friendly, very much on topic and which I heartily recommend everyone to subscribe to: is the address.
  • My tutorial is getting a bit dated - it doesn't incorparate the changes to QString in version 0.10 of the bindings, and it doesn't have the material on layout management, desktop integration or internationalisation that I'm currently writing about - but people do think it's a useful start.
  • Martin P. Holland has released an application, kpftupdater and an installer/uninstaller for PyKDE applications:
  • You will of course already know where to get the bindings, but for completeness sake:
    is the original site.