How would I create a custom GUI to use in Python?

This page summarizes the projects mentioned and recommended in the original post on /r/learnpython

Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
  • kivy

    Open source UI framework written in Python, running on Windows, Linux, macOS, Android and iOS

  • As for creating your own GUI library, you'll probably need to find a way to interface with SDL or X11 libraries -- you can see how kivy does it here: kivy/_window_sdl2.pyx at master ยท kivy/kivy (github.com) . This isn't trivial at all and I wouldn't really recommend it to a beginner, but if you're motivated enough, go for it.

  • DearPyGui

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

  • If you just want a GUI that looks and acts differently than Tkinter, I would recommend Dear PyGui, an easy to use and fast GUI (no dependencies whatsoever and not a wrapper for Tkinter in any way).

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • Arcade

    Easy to use Python library for creating 2D arcade games.

  • Ok, first of all, creating a GUI is a massive undertaking that takes advanced developers years of consistent work. However if you want to create an app with a few image buttons that don't look like your average GUI, you could use libraries pyglet, arcade and pygame. These libraries allow you to draw and put images on the screen and provide an API for mouse and keyboard events, so you at least don't have to deal with low-level coding. Arcade in particular is aimed at the beginning developer with a focus on documentation and examples.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts