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 Resize a Window to Fit a QTableView

Automatically size your window to show the full table, and keep the table filling the window when resized

Fixing "toHtml() not enough arguments" Error in PyQt6

How to correctly use the asynchronous toHtml() method in QWebEnginePage

Are there any built-in QIcons?

Using built-in icons for your apps.

GUI freezing while updating (result from QRunner)

How to keep your PyQt6 GUI responsive when processing large numbers of updates

Opening a subwindow from a button event

How to open a second window from a button click using PyQt6 and Qt Designer .ui files

Packaged installer file sizes for PyQt apps

Understanding and reducing the size of Python GUI application installers

Understanding .parent() vs. Parent Class in PyQt6 Custom Widgets

Why self.parent() doesn't mean what you think it means

QDialog blocking main thread?

Understanding why QDialog.exec() blocks your application and how to fix it

QWebEngine in Qt Designer

How to use QWebEngineView and other custom widgets in your Qt Designer layouts

Why are signals defined as class variables?

Understanding why PyQt6 and PySide6 signals live on the class, not in __init__

Clearing the canvas in QPainter

Fix the common black background issue when painting on a QPixmap in PyQt6

Elegant shutdown of running threads

How to gracefully shut down QThreadPool workers when closing your PyQt application

How to start/stop or pause running threads?

Control QRunnable workers in PyQt6 with start, stop, and pause functionality

What does @pyqtSlot() do?

Is the pyqtSlot decorator even necessary?

Understanding QPainter Coordinates in PyQt6

How the coordinate system works for drawing on canvases in PyQt6

Resizing the QPainter canvas

How to make a QLabel drawing canvas resize with the window

Using Complex Data Sources with PyQt6 Model/View Architecture

How to use JSON, nested data, and other complex structures in your Qt table and list views

Understanding .data() in Qt ModelView Models

How views retrieve data from your model using the data() method

Keeping Your Main Window Open After Closing a Dialog in PyQt6

Why your app closes when you dismiss a dialog, and how to fix it

Embedding Matplotlib Plots Alongside Other Widgets in PyQt6

How to use Matplotlib canvases as regular widgets in your PyQt6 layouts

ModelView Autoselection

How to automatically select items in a QListView using setCurrentIndex and QModelIndex

Fixing "No module named plotwidget" when using PyQtGraph with Qt Designer

How to correctly promote a widget to PyQtGraph's PlotWidget in your .ui files

PyQtGraph plotting over time

Updating plots in real time with PyQtGraph and PyQt6
1 2 3 4 5 6 7 8