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

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

Our great sponsors
  • ONLYOFFICE ONLYOFFICE Docs — document collaboration in your environment
  • Sonar - Write Clean Python Code. Always.
  • CodiumAI - TestGPT | Generating meaningful tests for busy devs
  • InfluxDB - Access the most powerful time series database as a service
  • 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).

  • ONLYOFFICE

    ONLYOFFICE Docs — document collaboration in your environment. Powerful document editing and collaboration in your app or environment. Ultimate security, API and 30+ ready connectors, SaaS or on-premises

  • 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