19 Free Python UI Libraries for Building GUI Desktop Apps

19 Free Python UI Libraries for Building GUI Desktop Apps

Python is a versatile programming language known for its simplicity and readability, making it a popular choice for various applications, including GUI desktop apps.

With libraries like Tkinter, PyQt, and PySide, developers can create cross-platform graphical user interfaces that are both functional and visually appealing.

Tkinter, included with Python, is great for beginners due to its straightforward syntax, while PyQt and PySide offer more advanced features and customization options for complex applications.

Creating GUI desktop apps with Python involves designing the interface, handling user interactions, and integrating backend functionality.

Tools like Qt Designer and PySimpleGUI simplify the process by providing drag-and-drop interfaces and pre-built components13.

Whether you’re building a simple tool or a sophisticated application, Python’s extensive ecosystem and supportive community make it an excellent choice for GUI development.

In the following list, you will find the best open-source solutions to create GUI apps with Python.

1. Tkinter

Tkinter Designer was created to speed up the GUI development process in Python. You can get started with this tutorial.

GitHub - ParthJadhav/Tkinter-Designer: An easy and fast way to create a Python GUI 🐍
An easy and fast way to create a Python GUI 🐍. Contribute to ParthJadhav/Tkinter-Designer development by creating an account on GitHub.

2- PyQt

PyQt is one of the most popular Python bindings for the Qt cross-platform C++ framework. PyQt was developed by Riverbank Computing Limited.

Qt itself is developed as part of the Qt Project. PyQt provides bindings for Qt 4 and Qt 5. PyQt is distributed under a choice of licences: GPL version 3 or a commercial license.

PyQt - Python Wiki

3- PySide

PySide is the Python Qt bindings project, providing access the complete Qt 4.8 framework as well as to generator tools for rapidly generating bindings for any C++ libraries.

PySide
Python bindings for the Qt cross-platform application and UI framework

4- PySimpleGUI

PySimpleGUI creates graphical user interfaces (GUIs) using Python, quickly and easily!

PySimpleGUI

5- NiceGUI

NiceGUI is an easy-to-use, Python-based UI framework, which shows up in your web browser. You can create buttons, dialogs, Markdown, 3D scenes, plots and much more.

It is great for micro web apps, dashboards, robotics projects, smart home solutions and similar use cases. You can also use it in development, for example when tweaking/configuring a machine learning algorithm or tuning motor controllers.

GitHub - zauberzeug/nicegui: Create web-based user interfaces with Python. The nice way.
Create web-based user interfaces with Python. The nice way. - zauberzeug/nicegui

6. Mesop

Mesop is a project from Google that provides a command-line tool designed for managing and deploying isolated Python environments.

It aims to simplify the process of creating and managing Python environments that are isolated from the global Python installation, ensuring that dependencies are properly managed and conflicts are avoided.

Mesop can be used to create lightweight and reproducible environments, making it particularly useful for developers who work on multiple projects or who need to ensure consistent environments across different systems.

GitHub - google/mesop: Rapidly build AI apps in Python
Rapidly build AI apps in Python. Contribute to google/mesop development by creating an account on GitHub.

7. Kivy

Kivy is an open-source Python framework for developing GUI apps that work cross-platform, including desktop, mobile and embedded platforms.

The aim is to allow for quick and easy interaction design and rapid prototyping whilst making your code reusable and deployable: Innovative user interfaces made easy.

Kivy is written in Python and Cython and is built on OpenGL ES 2.0. It supports various input devices and has an extensive (and extensible) widget library. With the same codebase, you can target Windows, macOS, Linux (including Raspberry Pi OS), Android, and iOS. All Kivy widgets are built with multitouch support.

Kivy is MIT licensed, actively developed by a great community and is supported by many projects managed by the Kivy Organization.

GitHub - kivy/kivy: Open source UI framework written in Python, running on Windows, Linux, macOS, Android and iOS
Open source UI framework written in Python, running on Windows, Linux, macOS, Android and iOS - kivy/kivy

8. CustomTkinter

CustomTkinter is a python UI-library based on Tkinter, which provides new, modern and fully customizable widgets. They are created and used like normal Tkinter widgets and can also be used in combination with normal Tkinter elements.

The widgets and the window colors either adapt to the system appearance or the manually set mode ('light', 'dark'), and all CustomTkinter widgets and windows support HighDPI scaling (Windows, macOS).

With CustomTkinter you'll get a consistent and modern look across all desktop platforms (Windows, macOS, Linux).

GitHub - TomSchimansky/CustomTkinter: A modern and customizable python UI-library based on Tkinter
A modern and customizable python UI-library based on Tkinter - TomSchimansky/CustomTkinter

9. Custom Tkinter Builder

This is a Free and Open Source RAD tool for Custom Tkinter. This software allows you to create complex UI faster than ever⚡

Features

  • ✅ Drag and Drop user interface
  • ✅ Adjust all the parameters of all the widgets.
  • ✅ Supports responsive Pack method
  • ✅ Supports 15/16 core widgets
  • ✅ Includes 10 pre customized widgets
  • ✅ Includes inbuilt icon support (more than 2000 ready to use icons with 5 different styles and customisable color)
  • ✅ Includes Palette which allows the users to change the colors of a UI with a single click of a button.
  • ✅ Supports Scrollable Frame (Vertical and Horizontal)
  • ✅ Export to .py (OOP and standard)
  • ✅ Save project (.json)
  • ✅ Duplicate widgets, Delete Widgets, Change order of widgets and Change parent of widgets
  • ✅ Visualize the structure of your UI with the inbuilt Hierarchy Panel
  • ✅ Allows users to work on both light and dark mode of the UI
  • ✅ Add images, change fonts, etc
GitHub - rigvedmaanas/CustomTkinterBuilder: This is a Free and Open Source RAD tool for Custom Tkinter. This software allows you to create complex UI faster than ever⚡
This is a Free and Open Source RAD tool for Custom Tkinter. This software allows you to create complex UI faster than ever⚡ - rigvedmaanas/CustomTkinterBuilder

10. Dear PyGui

Dear PyGui: A fast and powerful Graphical User Interface Toolkit for Python with minimal dependencies.

Features

  • Modern look — Complete theme and style control
  • Great performance — GPU-based rendering and efficient C/C++ code
  • Stable operation — Asynchronous function support
  • Fast graphs — Display over 1 million datapoints at 60 fps, zoom and pan
  • Node editor — Intuitive user interaction
  • Built-in demo — Quickly learn all features
  • Developer tools — Theme and resource inspection, runtime metrics, debugger
  • Cross-platform — Windows, Linux, MacOS
  • MIT license
GitHub - hoffstadt/DearPyGui: Dear PyGui: A fast and powerful Graphical User Interface Toolkit for Python with minimal dependencies
Dear PyGui: A fast and powerful Graphical User Interface Toolkit for Python with minimal dependencies - hoffstadt/DearPyGui

11. Enaml

Enaml is a programming language and framework for creating professional-quality user interfaces with minimal effort.

GitHub - nucleic/enaml: Declarative User Interfaces for Python
Declarative User Interfaces for Python. Contribute to nucleic/enaml development by creating an account on GitHub.

12. PUI

PUI is a reactive/declarative UI framework with two-way data binding. PUI doesn't do UI itself, it turns imperative UI libraries into reactive/declarative flavor with virtual DOM and aims to maintain interoperability.

GitHub - buganini/PUI: Python Reactive/Declarative UI Framework. PUI doesn’t do UI itself, it turns imperative UI libraries into declarative flavor with virtual DOM and aims to maintain interoperability.
Python Reactive/Declarative UI Framework. PUI doesn’t do UI itself, it turns imperative UI libraries into declarative flavor with virtual DOM and aims to maintain interoperability. - buganini/PUI

13. Remi

Remi is a GUI library for Python applications that gets rendered in web browsers. This allows you to access your interface locally and remotely.

GitHub - rawpython/remi: Python REMote Interface library. Platform independent. In about 100 Kbytes, perfect for your diet.
Python REMote Interface library. Platform independent. In about 100 Kbytes, perfect for your diet. - rawpython/remi

14. TkEasyGUI

TkEasyGUI is the easiest library for creating GUIs in Python.

GitHub - kujirahand/tkeasygui-python: The easiest library for creating GUIs in Python
The easiest library for creating GUIs in Python. Contribute to kujirahand/tkeasygui-python development by creating an account on GitHub.

15. pywebview

pywebview is a lightweight cross-platform wrapper around a webview component that allows to display HTML content in its own native GUI window. It gives you the power of web technologies in your desktop application, hiding the fact that the GUI is browser based.

Available for Windows, macOS, Linux and Android. You can use pywebview either with a 3rd party web framework or on its own with a two way bridge between Python and DOM.

pywebview uses native GUI for creating a web component window: WinForms on Windows, Cocoa on macOS, QT or GTK on Linux and Kivy for Android.

If you choose to freeze your application, pywebview does not bundle a heavy GUI toolkit or web renderer with it, keeping the executable size small. pywebview is compatible with Python 3.

GitHub - r0x0r/pywebview: Build GUI for your Python program with JavaScript, HTML, and CSS
Build GUI for your Python program with JavaScript, HTML, and CSS - r0x0r/pywebview

16. Eel

Eel is a little Python library for making simple Electron-like offline HTML/JS GUI apps, with full access to Python capabilities and libraries.

GitHub - python-eel/Eel: A little Python library for making simple Electron-like HTML/JS GUI apps
A little Python library for making simple Electron-like HTML/JS GUI apps - python-eel/Eel

17. Flexx

Flexx is a pure Python toolkit for creating graphical user interfaces (GUI's), that uses web technology for its rendering. Apps are written purely in Python; The PScript transpiler generates the necessary JavaScript on the fly.

You can use Flexx to create (cross platform) desktop applications, web applications, and export an app to a standalone HTML document. It also works in the Jupyter notebook.

GitHub - flexxui/flexx: Write desktop and web apps in pure Python
Write desktop and web apps in pure Python. Contribute to flexxui/flexx development by creating an account on GitHub.

18. FreeSimpleGUI

FreeSimpleGUI is a Python package that simplifies the process of creating graphical user interfaces (GUIs) for developers of all levels. It allows you to define your GUI layout using "Elements," which are widgets like buttons and text fields.

This layout is then used to create a window that can run on one of four supported frameworks: tkinter, Qt, WxPython, or Remi.

By handling much of the boilerplate code, FreeSimpleGUI enables you to write significantly shorter and simpler code compared to directly using the underlying frameworks.

The package is designed to be as user-friendly as possible, minimizing the amount of code needed to achieve the desired GUI.

In some cases, a FreeSimpleGUI program may require only a fraction of the code necessary if you were using the framework directly.

Although the package hides much of the framework-specific code, it still allows direct access to the underlying widgets and windows if needed, offering flexibility to expand the GUI's capabilities without modifying FreeSimpleGUI itself.

GitHub - spyoungtech/FreeSimpleGUI: The free-forever GUI library
The free-forever GUI library. Contribute to spyoungtech/FreeSimpleGUI development by creating an account on GitHub.

19. Tkinter-Toolkit

The Tkinter Toolkit is a Python package designed to simplify GUI development using the Tkinter framework. It offers a collection of pre-built widgets and tools that streamline the creation of user interfaces, allowing developers to build functional and visually appealing GUIs more efficiently.

The toolkit focuses on reducing repetitive code and providing ready-to-use components, making it easier to implement common GUI features without extensive coding.

Features

  • Explore new tkinter/customtkinter addon libraries
  • Experience a better UI development with tkinter
  • Installation links are provided
  • Preview images of the libraries
  • Detailed descriptions provided
  • Update database and view new packages if available









Open-source Apps

9,500+

Medical Apps

500+

Lists

450+

Dev. Resources

900+