Embedding Python into your Qt / C++ application and accessing the whole Qt API from within your Python scripts is right at your hands with the new PythonQt 2.0 release.


PythonQt consists of a small dynamic library that offers scripting QObjects and interaction between
Qt and Python in both directions, mostly in the spirit of QtScript, but for Python.
In addition to that, the core library can be extended using the new wrapper generator to support raw C++ classes.
PythonQt comes with pregenerated wrappers for most Qt modules.

Note: The focus of PythonQt is embedding Python into your existing Qt application (to make some aspects of it scriptable), and not to create the whole application in Python. If you are looking for that, go for PyQt or PySide!

The main features of this update are:
- a new wrapper generator (based on the qtscript generator) that generates Python wrappers for (almost) the complete Qt framework
- support for multiple inheritance of wrapped C++ classes
- support for polymorphic downcast (e.g., QEvent will get its derived type based on the type id)
- dynamic property support (both setting and getting via normal python attributes)
- public member variable wrapping (for QStyleOptions and derived classes)
- full support for operators (so that QPoint, QSize etc. can be used with operators in Python)
- automatic casting for special classes (QPen/QBrush/GlobalColor enum/...)
- deriving C++ objects from Python to implement virtual functions (experimental feature)

With this release, the feature set of PythonQt comes much closer to what PyQt and PySide offer, it is now
possible to create complex GUIs using PythonQt and you could delegate large parts of your C++ application
to Python scripting (e.g., to let users customize the GUI, to support Python plugins in your application, your idea goes here...).