Topic Design and develop a toolkit for developing GUI applications in Python with modern-looking widgets and modern development approaches
Keywords Python, GUI, Toolkit, Form-based application
Degree Computer Engineering, Cinema and Media Engineering
Credits 30
Advisors Fulvio Corno, Luigi De Russis

The Python language is increasingly adopted as a fast prototyping tool in several domain (IoT, web technologies, scientific computing, data science, system administration, etc.), thanks to the ease of integration of third-party library and to the extensive availability of free software modules and libraries. However, the tools and libraries for the development of Python graphical applications did not improve significantly in the last 10 years: developing a desktop application currently requires adopting Tk, Qt, GTK+, or WX widgets. The only modern alternative is Kivy, but is oriented to game-like applications and natural user interfaces.

The thesis aims at proposing a new library and toolkit for developing desktop GUI applications, with a modern look of the available widgets, and exploiting modern programming paradigms for interface layout, event handling, and content-presentation separation. For example, in Java the JavaFX library enables creating nice-looking desktop applications in a mostly declarative way, or on the Windows/.Net environment, the WPF adopts a similar high-level and developer-friendly approach.

The thesis will start from an analysis of the existing "modern" toolkits (for different languages), and the options available to create cross-platform desktop applications in Python (including cross-platform low level libraries, as well as HTML-oriented approaches). The most effective and promising solution will be selected. In a second phase, a suitable API will be defined, and a Python module will be developed for implementing it.

The outcome of the thesis, if satisfying, will be made freely available as an Open Source project.