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

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

Dynamically Adding Rows of Widgets in PyQt6

How to use QGridLayout to add multiple widgets per row at runtime

Packaging Python Apps That Use scikit-learn with PyInstaller

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

Debugging widgets not appearing in Qt applications

How to figure things out when something goes wrong

Getting a Value from a Model Using Row-Column Indices

How to retrieve data from a Qt model using row and column integers

Remember the Last Saved Directory with QFileDialog

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

Checkboxes in Table Views with a Custom Model

Show checkboxes for boolean values in PyQt/PySide table views

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

Building an Interactive Audio Editor with PyQtGraph and PyQt6

Use PyQtGraph's fast, interactive plotting to visualize audio waveforms and spectra in a PyQt6 application

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

Display Table with QTableWidget

How to display database query results in a PyQt6 table using QTableWidget

Drawing Dots on an Image with Mouse Clicks in PyQt6

How to paint markers on top of an image displayed in a QLabel

System Tray Icons Not Showing or Not Closing on Windows

Troubleshooting common issues with QSystemTrayIcon on Windows 10 and 11

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.

Handling Image Drag and Drop from Web Browsers in PyQt6

Why toLocalFile() returns an empty string and how to handle remote image drops correctly
1 2 3 4 5 6 7 8 9