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

Overriding acceptNavigationRequest in QWebEnginePage

Intercept link clicks in QWebEngineView and handle navigation yourself

Sorting & filtering Qt Model Views

Using QSortFilterProxyModel to filter and sort data in PyQt6

QTableWidget for List of Dict

Display Python dictionaries in a Qt table using QAbstractTableModel

What happens after defining `app`, but before executing it?

Understanding the relationship between QApplication, widgets, and the event loop in PyQt6

Python PDF Report Generator

Generate custom PDF reports using reportlab & pdfrw with a PyQt/PySide GUI

Opening New Windows from Qt Designer Files in PyQt6

How to properly use Qt Designer generated UI files and open new windows with button clicks

CSS Selector for widget Class

How to use Qt property selectors in stylesheets to target widgets by custom class

When will there be a new version of Creating GUI Applications for PyQt6 and PySide6?

Key migration changes from PyQt5/PySide2 to PyQt6/PySide6 and the updated book editions

Transparent TextBrowser

Creating a fading text effect in a QListView using custom model formatting

Running Custom Functions in Background Threads with QThreadPool and QRunnable in PyQt6

How to run user-defined functions with arguments using QThreadPool and QRunnable in PyQt6

Displaying Tabular Data in PyQt6 ModelViews

Create customized table views with conditional formatting, numpy and pandas data sources.

How to Add Widgets After Loading a Qt Designer .ui File

Access layouts and add widgets programmatically to your Qt Designer interfaces

Creating Searchable Widget Dashboards in PyQt6

Make dashboard UIs easier to use with widget search & text prediction

Packaging PyQt6 applications into a macOS app with PyInstaller

Turn your PyQt6 application into a distributable macOS app bundle

PyQt Windows Won't Reopen in Spyder — How to Fix It

Why your PyQt app only runs once in Spyder, and what you can do about it

HTML, CSS and JS in a Desktop App... Qt WebEngine vs. Electron vs.?

Comparing approaches to building desktop apps with web technologies and Python

Install PyQt6 on Windows

Install PyQt6 on Windows 8, 10 & 11

Using Qt Resource Files (.qrc) with PyInstaller and PyQt

How to include pyrcc5-compiled resources when packaging your PyQt application

Segmentation Fault With QProcess Manager

How to fix TypeError and segmentation faults when using QProcess in PyQt6

QSystemTrayIcon — Adding Menu Items in a Loop

Why dynamically created QActions disappear and how to fix it

Fixing DLL Loading Errors When Packaging PyQt Apps with PyInstaller

How to solve "Could not find module .dll" errors when running your packaged app on other computers

Understanding QTimer Timing and Delays in PyQt6

Why your QTimer might not fire on time, and what you can do about it

Laying Out Your PyQt6 GUIs With Qt Designer

Use Qt Designer to effortlessly build your application UI

Changing Ticks in PyQtGraph Objects to Strings

How to replace numeric axis ticks with custom labels like month names or dates in PyQtGraph

QTreeView with QAbstractItemModel in PyQt6

Build hierarchical tree displays using custom models
1 2 3 4 5 6 7 8 9