Repolode
alfiopuglisi

alfiopuglisi/guietta

A Python library for building simple desktop GUIs with minimal code, built on Qt.

Stars
1,953
Forks
93
Open issues
13
Last commit
12 days ago

What is it?

Guietta lets Python developers build desktop graphical interfaces by describing the layout as nested lists of widgets. Each cell in the list becomes a widget such as a label, text field, or button, and placeholders mark empty grid positions. Event handlers are attached with a simple `with gui.ButtonName:` block, so a small calculator can be written in a few lines.

The library covers common needs beyond basic forms. It integrates matplotlib and pyqtgraph for event-driven plots, can display columns of data in labels from lists and dicts, and supports multiple windows. Exceptions in handlers can be customized, and background processing is available for long-running operations. Any QWidget-derived Qt widget, including custom ones, can be placed in the layout, and standard Qt signals and slots remain usable.

Guietta uses PySide2 by default and can fall back to PyQt5 when PySide2 is unavailable. It is installed with pip, and the project provides documentation on hosting and conda compatibility.

Key features

  • 01Describes GUI layouts as nested lists of widgets, with placeholders for empty cells.
  • 02Attaches event handlers with a simple `with gui.ButtonName:` block.
  • 03Integrates matplotlib and pyqtgraph for event-driven plots.
  • 04Supports multiple windows and customizable exception handling.
  • 05Accepts any QWidget-derived Qt widget, including custom ones.

Use cases

  • Quickly building a small utility such as a calculator or data entry form.
  • Adding a simple interactive plot window to a data analysis script.
  • Prototyping a desktop interface without learning the full Qt API.

Quick start

  1. 1

    Install guietta with pip

    pip install guietta
  2. 2

    Create a Python file with the example GUI code and run it with gui.run()

Things to know

  • Uses the PySide2 Qt binding by default, which some systems such as older Macs and Raspberry Pi lack, so you may need to install PyQt5 manually.

In collections

Topics

#gui#qt#pyside2#pyqt5#desktop-app#python-gui#matplotlib

FAQ

What is guietta?
A Python library for building simple desktop GUIs with minimal code, built on Qt. Guietta lets Python developers build desktop graphical interfaces by describing the layout as nested lists of widgets. Each cell in the list becomes a widget such as a label, text field, or button, and placeholders mark empty grid positions. Event handlers are attached with a simple `with gui.ButtonName:` block, so a small calculator can be written in a few lines.
Is guietta free to use? What license does it have?
guietta is open source under the MIT license. Check the license terms before using it in commercial products.
Is guietta still maintained?
Actively maintained. The last commit to guietta was on Oct 27, 2026.
What can I use guietta for?
Quickly building a small utility such as a calculator or data entry form. Adding a simple interactive plot window to a data analysis script. Prototyping a desktop interface without learning the full Qt API.
How do I install guietta?
Install guietta with pip: pip install guietta Create a Python file with the example GUI code and run it with gui.run()
Where can I get guietta?
The source code and installation instructions are on GitHub: https://github.com/alfiopuglisi/guietta

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects