PyQt5 is a Python binding of the cross-platform GUI toolkit Qt. Applications built with PyQt5 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. PyQt5 was released in 2016 and last updated in October 2021.

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

Explore PyQt5

PyQt5

Recommended way to install PyQt5 with fbs on macOS

Getting the right combination of Python, PyQt5, and PyInstaller for fbs on macOS

PyInstaller macOS issue with QCombobox not refreshing

Fixing widget redraw problems in PyQt5 apps packaged with PyInstaller on macOS

Solving Common PyInstaller Problems on macOS

How to fix file paths, reduce bundle sizes, and handle macOS-specific packaging issues

Saving and Restoring Application Settings with QSettings in PyQt5

Learn how to use QSettings to remember user preferences, window sizes, and configuration options between sessions

How to make QSplitter respond to double clicking?

Add double-click collapse and restore to QSplitter by creating a custom QSplitterHandle

PyQt5 runJavaScript with QtWebEngine

Execute JavaScript in web pages embedded in your PyQt5 applications

PyQt5 MYSQL driver not loaded on Windows

How to fix the "QMYSQL driver not loaded" error when connecting to MySQL from PyQt5

Creating Dialogs With Qt Designer and PyQt5

Using the drag and drop editor to build PyQt5 dialogs

How to compile PyQt5 or PySide2 code with Nuitka

Convert your Python Qt applications to fast native executables using the Nuitka compiler

QProcess.start() is deprecated, what are the alternatives?

Update how you launch subprocesses with arguments in PyQt5 & PySide2

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

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

Is it just me or is QMediaPlayer not working properly?

Fixing incorrect duration reporting and media file issues with QMediaPlayer on Windows

Creating Additional Windows in PyQt5

How to open, show, hide, and toggle multiple windows in your PyQt5 application

QNetworkAccessManager HTTPS UnknownNetworkError with PySide2 on Windows

Fixing "TLS initialization failed" when making HTTPS requests with PySide2

How can I import a pyqtgraph HistogramLUTWidget with a .ui file

Using Qt Designer widget promotion to embed pyqtgraph's HistogramLUTWidget in your UI

Why is Qt Creator used in the tutorial?

Understanding the difference between Qt Creator and Qt Designer

"Fix: (IM002) [Microsoft][ODBC Driver Manager] Data Source Name Not Found"

Solving the QODBC3 connection error when using QSqlDatabase in PyQt5

Exporting Widgets to PDF and Controlling Position in PyQt5

How to render a QWidget to PDF and position it at the top of the page

Creating a database data entry form with PyQt5

Using SQL table models and QDataWidgetMapper to build automatic data entry views

Using Icons from Qt Resources with PyInstaller

Understanding why PyInstaller needs a separate icon file, even when you're using a QRC resource file

Create GUI Applications with Python & Qt5, 4th Edition Now Available (PyQt5 & PySide2)

The hands-on guide to building desktop apps with Python and Qt5

Embedding External Programs and Terminals in PyQt5 Widgets

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

PyQt vs PySide Licensing

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

Laying Out Multiple Widgets in a Scrollable Grid with PyQt5

How to dynamically arrange group boxes in a grid layout that scrolls and resizes cleanly
1 2 3 4 5 6