Python GUI Tutorials

Want to create GUI applications with Python? Here is everything you need to go from your first window to complete apps.

Stop wasting your time on half-baked examples and bad practises. Learn how to build Python applications the right way.

What do you want to do?

Build Professional Desktop Apps with Python I recommend PyQt6 or PySide6 — with PySide being more popular for commercial software due to simpler licensing. Get Started with PySide6

Build Data Science Dashboards with Python If you want to build web-based dashboards, Streamlit is the current most capable and best supported option. Get Started with Streamlit

Learn Python GUI Basics While others recommend Tkinter because it's bundled with Python, I suggest getting started with PyQt6. It isn't any more complex, has better tutorials and is far more capable. Get Started with PyQt6

Python GUI Libraries

Other libraries are available

There are multiple Python GUI libraries available for Python. If you're not sure which GUI library to use for your project see Which Python GUI Library?, our comprehensive guide. We have complete tutorials for many Python UI libraries.

Books

Hands-on guides to Python GUI programming

Books taking you from first principles to fully-functional apps, not toy examples.

See all Python GUIs books

Latest Updates

Clean up on exit — Stopping threads when closing a PyQt6 application

How to properly shut down background threads and workers when your application window is closed

Fixing Crashes When Using NumPy Arrays with QImage in Qt Threads

How to safely pass image data between threads when streaming video or updating displays

How to Check if a QLineEdit is Empty in Python

Empty strings are falsey in Python

Are there any built-in QIcons?

Using built-in icons for your apps.

Understanding QPainter Coordinates in PyQt6

How the coordinate system works for drawing on canvases in PyQt6

Creating PySide6 UI without .ui / Qt Designer

Build your entire GUI in pure Python code, no .ui files required