Jump to Navigation

Prototyping and developing apps with Python, PySide and QML

Session Summary: 
The PySide: Python for Qt project provides complete Qt and QML bindings for the Python programming language. PySide provides a sweet spot between the ease of use and developer productivity of pure QML and the power and API breadth of full Qt C++ framework: user interfaces can be defined using QML and Qt Components, but additional program logic can be written using a high-level language with access to a wide variety of Qt and other APIs. Since the PySide bindings mirror the Qt C++ APIs, applications can be converted into C++ after a prototyping phase in Python, or deployed directly as-is, decreasing time-to-market and increasing developer productivity. This presentation will give a hands-on introduction to quickly developing software with PySide and QML for the UI. The PySide project status will be discussed and available Python bindings for MeeGo APIs introduced as well.
Session Abstract: 

PySide: Python for Qt provides access to a complete set of LGPL-licensed Python Qt bindings as well as the QML declarative user interface definition language. While QML provides an unsurpassed ease of defining
modern and attractive application user interfaces, it falls short of facilities for creating more complex application backend logic. Pure QML can be complemented with C++, but even with the power of Qt frameworks,
it is easier and more productive to prototype and write application logic with high-level languages. PySide offers developers the possibility to write software with QML user interfaces and Python application logic, thus combining the best features of both worlds.

With PySide, the developer can utilize all of Qt's APIs while still using all the powerful language features of Python. Furthermore, all features of QML such as the Qt Components can be utilized when defining the user interfaces. This allows the developer to quickly prototype and try out new ideas, and create more with even less code compared to C++. If deploying applications written in C++ is preferred, Python can be used to prototype the backend, and when the software is finished, the backend can be easily ported to C++, while re-using all of the QML UI code.

This session will be hands-on with real-life application code as examples, and will give you an introduction on how to carry out basic development tasks with PySide. Different development scenarios will be discussed, comparing Python to C++ in terms of disadvantages and advantages, so developers will have a good understanding of which tool to use in which situation. To give further insight to the PySide project, the project layout and status are discussed. Different MeeGo API bindings available for Python are also introduced, providing developers an insight of what kinds of MeeGo software are feasible to be implemented in Python.

This session is recommended for developers who need to have working prototypes available for testing quickly and who want to re-use assets from prototypes in final products (e.g. QML UIs of a Python prototype re-used in the C++ final application) to decrease time-to-market. It is also recommended to open source community developers looking for a tool for cross-platform development that is highly efficient.