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 Dialogs and Alerts

Notify your users and ask for their input

PyQt5 Layouts

Use layouts to effortlessly position widgets within the window

PyQt5 Signals, Slots & Events

Triggering actions in response to user behaviors and GUI events

Creating your first app with PyQt5

A simple Hello World! application with Python and Qt5

Install PyQt5 on Windows

Install PyQt5 on Windows 8, 10 & 11

Install PyQt5 on Ubuntu Linux

Install PyQt5 on Ubuntu and other Debian-based Linux distributions

Install PyQt5 on macOS

Install PyQt5 on macOS

Install PyQt5 on Raspberry Pi

Install PyQt5 on Raspberry Pi Raspbian

PyQt5 Widgets

Using QPushButton, QCheckBox, QComboBox, QLabel and QSlider widgets

First steps with Qt Designer

Use Qt Designer's drag and drop interface to design your PyQt5 GUI

NSAViewer, desktop Photobooth

Take photos of yourself, with a terrible camera.

Raindar, desktop Weather App

Pulling data from a remote API

7Pez, custom skinned Unzip

Skinning a PyQt5 decorationless window

Megasolid Idiom, a Rich Text Editor

Simple WYSIWYG editor in Python

Palette

Simple colour palette in linear or grid layouts

Brown Note, desktop Reminder

Relieve your creative blockages with these interactive desktop reminders.

Failamp, a Multimedia Player

Multimedia playlist and player in Python, using PyQt

QtWebEngineWidgets, the new browser API in PyQt 5.6

Simplified page model and asynchronous methods

Tabbed web browsing

Use signal redirection to add a multi-tab interface

Mozzerella Ashbadger

The first steps building the browser with PyQt5

Adding application Help and About dialogs

Put some finishing touches to your application

Open and save HTML in a PyQt5 browser

Adding file dialogs to load and save HTML

Multithreading PyQt5 applications with QThreadPool

Run background tasks concurrently without impacting your UI

No2Pads, a simple Notepad clone

The QTextEdit widget does 90% of the work

PyQtConfig

A simple API for keeping your PyQt Widgets and config in sync

ColorButton

A color-selector tool for PyQt
1 2 3 4 5 6 7 8 9