Python GUIs

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

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

    The lean application framework for Python. Build sophisticated user interfaces with a simple Python API. Run your apps in the terminal and a web browser.

  • for Python GUIs I recommend considering a console-based GUI using the excellent Textual: https://textual.textualize.io/

    this is the most modern GUI (in a console or not) framework you'll find for Python right now.

  • flet

    Flet enables developers to easily build realtime web, mobile and desktop apps in Python. No frontend experience required.

  • Well I haven't seen anyone mention Flet, which is pleasant (if maybe not all that complete) if you have Dart/Flutter experience, so increment your counter at least one. :-)

    https://flet.dev/

  • 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
  • pdfmerger

  • I think that tkinter is "good enough" for most cases that need a GUI in pythonb these days (for more complex stuff you'd better go with either a web app or a compiled language that creates normal desktop apps).

    As a showcase I've built two simple utils with python and tk (and pyinstaller):

    - https://github.com/spapas/pdfmerger a simple tool to merge pdfs into one

    - https://github.com/spapas/pomo ; a simple pomodoro timer

  • pomo

  • I think that tkinter is "good enough" for most cases that need a GUI in pythonb these days (for more complex stuff you'd better go with either a web app or a compiled language that creates normal desktop apps).

    As a showcase I've built two simple utils with python and tk (and pyinstaller):

    - https://github.com/spapas/pdfmerger a simple tool to merge pdfs into one

    - https://github.com/spapas/pomo ; a simple pomodoro timer

  • Gooey

    Turn (almost) any Python command line program into a full GUI application with one line

  • I love gooey: https://github.com/chriskiehl/Gooey

    It allows me to quickly slap a GUI on an existing script that accepts command-line-arguments. In the end, I get the best of both world: Discoverability from the GUI, automation through the script, and automatic feature parity between the two.

    Downside: Control over the GUI layout is basic, and only "standard" GUI features work, but I never felt limited when using it.

  • streamlit

    Streamlit — A faster way to build and share data apps.

  • I have been looking at Python GUI libraries/frameworks/services over the past > 1 year. I'll cut straight to the chase with my recommendations for what they are worth. My use cases are typically 10 - 50 users in an enterprise setting, so accessibility/low barrier to entry (pretty much meaning web-based) are concerns of mine. I also lean toward wanting to avoid learning overly-specific tools in service of just a single use (I put Qt and tkinter into this category).

    - NiceGUI https://nicegui.io/#features - my favorite of the bunch, essentially wraps Quasar Vue components with accessible python. Tons of features including SPA, FastAPI under the hood, TailwindCSS. Have used it on a few projects and started contributing recently.

    - Streamlit https://streamlit.io/ - if your goal is to get some python code set up with a GUI and deployed ASAP this is the best option. I have gone from 0 to a full working app in like an hour for some projects. Lots of love for it. A bit limited in terms of full-scale applications and large backend databases but it actually holds up really well.

    There are a lot of other ones that people regularly recommend.

    - Gradio https://gradio.app/ - really popular with huggingface and ml folks. Similar to streamlit in that it sacrifices some level of depth for speed of standing up projects.

    - Textual https://www.textualize.io/projects/#textual - Not to be a hater, but I have never seen a good argument for why it's worth dumping a bunch of time into this versus a web-oriented framework. They say "it's useful for products that don't need the internet", "you can use it through ssh", etc... doesn't really fit with my needs, I'll just leave it at that.

    - Anvil https://anvil.works/ - a "low code" option for building python GUIs. I am pretty impressed, it has integrated databasing and a lot of plugins. If you are aiming for a scalable application for a large number of users this is probably a good options. My personal gripe with it is the number of mouse clicks it takes to do stuff but that could also be my lack of experience with the tool.

    -

  • nicegui

    Create web-based user interfaces with Python. The nice way.

  • I have been looking at Python GUI libraries/frameworks/services over the past > 1 year. I'll cut straight to the chase with my recommendations for what they are worth. My use cases are typically 10 - 50 users in an enterprise setting, so accessibility/low barrier to entry (pretty much meaning web-based) are concerns of mine. I also lean toward wanting to avoid learning overly-specific tools in service of just a single use (I put Qt and tkinter into this category).

    - NiceGUI https://nicegui.io/#features - my favorite of the bunch, essentially wraps Quasar Vue components with accessible python. Tons of features including SPA, FastAPI under the hood, TailwindCSS. Have used it on a few projects and started contributing recently.

    - Streamlit https://streamlit.io/ - if your goal is to get some python code set up with a GUI and deployed ASAP this is the best option. I have gone from 0 to a full working app in like an hour for some projects. Lots of love for it. A bit limited in terms of full-scale applications and large backend databases but it actually holds up really well.

    There are a lot of other ones that people regularly recommend.

    - Gradio https://gradio.app/ - really popular with huggingface and ml folks. Similar to streamlit in that it sacrifices some level of depth for speed of standing up projects.

    - Textual https://www.textualize.io/projects/#textual - Not to be a hater, but I have never seen a good argument for why it's worth dumping a bunch of time into this versus a web-oriented framework. They say "it's useful for products that don't need the internet", "you can use it through ssh", etc... doesn't really fit with my needs, I'll just leave it at that.

    - Anvil https://anvil.works/ - a "low code" option for building python GUIs. I am pretty impressed, it has integrated databasing and a lot of plugins. If you are aiming for a scalable application for a large number of users this is probably a good options. My personal gripe with it is the number of mouse clicks it takes to do stuff but that could also be my lack of experience with the tool.

    -

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
  • zeroRPC

    zerorpc for python

  • fbs

    Create Python GUIs with Qt in minutes

  • I’ve heard good things about https://build-system.fman.io/, though I haven’t used.

  • xll

    Excel add-in library

  • My guilty secret is to use Excel for my quick and dirty GUIs. I wrote a library to make that easy if you know C++. https://github.com/xlladdins/xll.

  • kivy

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

  • Anyone has some experience with Kivy [1]? It seems that it checks off some of my requirements, like cross-platform, supporting touch interfaces, ease of development, allows complex/fancy UIs as well, etc.

    [1] https://kivy.org/

  • govcl

    Cross-platform Go/Golang GUI library.

  • I like to use GoVCL [0] as it provides the GUI of Lazarus [1] including drag-n-drop form designer but with Go as the main language.

    GoVCL's author built a C library called liblcl [2] which is what GoVCL uses to control the GUI, so if you know C you can use it instead of Go.

    I'm building a lightweight Steam chat client with GoVCL so that I don't need the official client that takes like 200-300mb ram just to show text [3].

    [0]: https://github.com/ying32/govcl

  • liblcl

    A common cross-platform GUI library, the core uses Lazarus LCL.

  • Video-Hub-App

    Official repository for Video Hub App

  • "The problem" might be that people in this thread and others get frustrated because others have different goals than them.

    Of course Electron is overkill for a single-button application. But Visual Basic is absolutely going to be a headache if you want a custom GUI.

    Pick the tool that's right for the job!

    I build this with Electron: https://videohubapp.com/

  • SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
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