We're regularly updating the site with new tutorials, updates and corrections with the support of the Python community.
Found something wrong? Send Feedback & Corrections
We're regularly updating the site with new tutorials, updates and corrections with the support of the Python community.
Found something wrong? Send Feedback & Corrections
Convert your Python Qt applications to fast native executables using the Nuitka compiler
Create customized table views with conditional formatting, numpy and pandas data sources.
Fixing widget redraw problems in PyQt5 apps packaged with PyInstaller on macOS
Modifying your model to allow editing of your data source
Modifying your model to allow editing of your data source
Using QLabel and QPixmap to easily add images to your applications
Using QLabel and QPixmap to easily add images to your applications
Using command-line arguments to configure Qt
Changing the OS cursor and implementing a custom crosshair
Understanding Qt parents and layouts and the effect on widget position
Modifying your model to allow editing of your data source
How to communicate between threads and windows in PyQt6
Update how you launch subprocesses with arguments in PyQt5 & PySide2
Using QLabel and QPixmap to easily add images to your PySide2 applications
Using built-in icons for your apps.
Using QLabel and QPixmap to easily add images to your applications
Run background tasks without creating a QRunnable by passing a callable directly to QThreadPool
How to bundle and run external Python scripts from a frozen PyQt6 application
Understanding how beginRemoveRows, endRemoveRows, and your underlying data work together in Qt model/view
Updating the displayed directory in a QTreeView with QFileSystemModel
Understanding why calling setLayout() twice causes an error, and how to structure your layouts correctly
Why Qt's file watcher complains about deleted directories and how to handle it
Working with large datasets in Qt's SQL table views, handling pagination, filtering, and record navigation
Build a settings dialog with QDialog, QGroupBox, QRadioButton and QSettings in PyQt and PySide
Find out which version of PyQt5 you're running
Find out which version of PySide2 you're running
Find out which version of PySide6 you're running
Use QSortFilterProxyModel to add live filtering to your tables
Why your PyQt app only runs once in Spyder, and what you can do about it
Solving display and rendering glitches when running PyQt applications on macOS
Secure your desktop applications with login flows, token-based auth, and role-based access control
How to handle Qt styling and themes when distributing your Python GUI app through pip
Learn how to use QSettings to remember user preferences, window sizes, and configuration options between sessions
Use QThreadPool and QMovie to show a loading animation without freezing your PyQt5 interface
Why your toolbar icons might be missing and how to fix the file path
How to render a QWidget to PDF and position it at the top of the page
How to bundle and display icons correctly in your packaged PyQt5 applications
Adding visible titles to your context menus using QLabel, QWidgetAction, and other approaches
Understanding why QDialog.exec() blocks your application and how to fix it
How to gracefully shut down QThreadPool workers when closing your PyQt application
Updating plots in real time with PyQtGraph and PyQt6
A quick retrospective on 2019
Distribute cross-platform GUI applications with the fman Build System
Setting PATH to use the Postgres library with PyQt5, PyQt6, PySide2 & PySide6
How to display large datasets page by page with navigation controls
Understanding the difference between passing a function and calling a function when using QThreadPool and QRunnable
Understanding why flags() isn't called when using QDataWidgetMapper with standard widgets
Find out which version of PyQt6 you're running
Display Python dictionaries in a Qt table using QAbstractTableModel
Build hierarchical tree displays using custom models