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

PyQt6

How to Build a Scheduling App Layout with Qt Designer and PyQt6

Plan and design a scheduling application using Qt Designer, QTableView, and model/view architecture

How to display a loading animated gif while a code is executing in backend of my Python Qt6 UI?

Use QThreadPool and QMovie to show a loading animation without freezing your PyQt6 interface

Icons Not Showing in PyQt6 or PySide6 Toolbar

Why your toolbar icons might be missing and how to fix the file path

How to Find What Data a Signal Sends in PyQt6 and PySide6

Understanding signal signatures and how to look them up in the Qt documentation

Tracking Thread Pool Duration in PyQt6

How to measure and display total execution time across multiple workers in QThreadPool

Troubles with loading data when running from my IDE

Why icons, images, and databases fail to load when you run your PyQt app from VS Code

Multi-Threading Do's and Don'ts

Practical guidelines for working with threads, timers, and signals in PyQt6

QSqlTableModel canFetchMore — Loading All Rows from Your Database

Why QSqlTableModel only shows 256 rows and how to fetch everything

QTableWidget: How to remove subsequent rows on new row insert?

Managing chess move history in a QTableWidget with row insertion and deletion

Fixing Missing Icons in PyInstaller-Packaged PyQt6 Applications on Windows

Why your app icon disappears after packaging and how to fix it

Understanding Python Keyword Unpacking with QThreadPool Progress Callbacks in PyQt6

How **kwargs connects progress signals to worker functions in PyQt6 multithreading

Simultaneous scaling ViewBox elements

How to synchronize axis scaling across multiple PyQtGraph plots

QPainter CompositionMode or Interactive PseudoColor Mapping

How to build an interactive paint tool with additive blending and pseudocolor mapping

Chat Speech Bubbles in PyQt6 with QListView and Custom Delegates

Build a messaging-style interface with colored speech bubbles, timestamps, and left/right alignment

Impossible Translations

Troubleshooting PyQt6 translation loading issues with QTranslator

Embedding External Programs and Terminals in PyQt6 Widgets

Approaches to embedding terminals and external applications inside your PyQt6 or PySide2 GUI

PyQt vs PySide Licensing

Everything you need to know about LGPL and GPL for your PySide/PyQt applications

How to Insert and Remove Rows in a QAbstractTableModel

Adding and deleting rows from a custom table model in PyQt6

Packaging Python Apps That Use scikit-learn with PyInstaller

How to solve hidden import errors when bundling scikit-learn and other complex packages

Remember the Last Saved Directory with QFileDialog

How to pre-fill file names and remember the last-used folder in PyQt file dialogs

How to Specify Absolute Paths for QIcon in PyQt6

Using os.path and pathlib to build icon paths correctly in your PyQt6 applications

Using command line arguments to open files with PyQt6 apps -- Windows file associations

Accept filenames from the command line and set up Windows "Open with" for your PyQt6 applications

Structuring a Large PyQt Application

How to organize files, folders, and widgets when building a complex PyQt app

How to Show a QMenu Title in PyQt6

Adding visible titles to your context menus using QLabel, QWidgetAction, and other approaches

Drawing Dots on an Image with Mouse Clicks in PyQt6

How to paint markers on top of an image displayed in a QLabel
1 2 3 4 5 6 7 8