PyQt6 is a Python binding of the cross-platform GUI toolkit Qt. Applications built with PyQt6 will run on any platform supported by Qt & Python including Windows, OS X, Linux, iOS and Android.

Created by Riverbank Computing, PyQt is free software (GPL licensed) and has been in development since 1999. The latest version PyQt6 was released in 2021 and the library continues to be updated.

For a complete guide to desktop application development with Python & PyQt6, see the PyQt6 tutorial and PyQt6 book Create Simple GUI Applications with Python & Qt.

Explore PyQt6


Toggleable checkable widget

Plotting with PyQtGraph

Create custom plots in PyQt6 with PyQtGraph

Plotting with Matplotlib

Create PyQt6 plots with the popular Python plotting library

Which Python GUI library should you use?

Comparing the Python GUI libraries available in 2022

PyQt6, PySide6, PyQt5 and PySide2 Books -- updated for 2022!

New editions extended and updated, now 780+ pages

PyQt5 vs PyQt6

What are the differences, and is it time to upgrade?

Packaging PyQt6 applications for Windows with PyInstaller & InstallForge updated

Turn your PyQt6 application into a distributable installer for Windows

Animating custom widgets with QPropertyAnimation

Add dynamic visual effects to your custom widgets

Add scrollable regions with QScrollArea

Run out of space in your GUI? Add a scrollable region to your application

Simple threading in PyQt/PySide apps with .start() of QThreadPool

How to move Python functions/methods & PyQt/PySide slots onto separate threads

Using QProcess to run external programs

Run background programs without impacting your UI

Embedding custom widgets from Qt Designer

Learn how to use custom widgets in your PyQt6 applications when designing with Qt Designer

Creating Dialogs With Qt Designer

Using the drag and drop editor to build PyQt6 dialogs

Introduction to the QGraphics framework

Creating vector interfaces using the QGraphics View framework

Introduction to the QGraphics framework

Creating vector interfaces using the QGraphics View framework

Creating additional windows updated

Opening new windows for your application

Creating custom GUI widgets in PyQt6

Build a completely functional custom widget from scratch using QPainter

QPainter and Bitmap Graphics

Introduction to the core features of QPainter

Transmitting extra data with Qt Signals

Modifying widget signals to pass contextual information to slots

PyQt6 Toolbars & Menus — QAction updated

Defining toolbars, menus and keyboard shortcuts with QAction

PyQt6 Dialogs and Alerts updated

Notify your users and ask for their input

PyQt6 Layouts updated

Use layouts to effortlessly position widgets within the window

PyQt6 Signals, Slots & Events updated

Triggering actions in response to user behaviors and GUI events
1 2 3