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
Modifying widget signals to pass contextual information to slots
Introduction to the core features of QPainter
Introduction to the core features of QPainter
Introduction to the core features of QPainter
Modifying widget signals to pass contextual information to slots
Modifying widget signals to pass contextual information to slots
Modifying widget signals to pass contextual information to slots
Introduction to the core features of QPainter
Create custom plots in PySide6 with PyQtGraph
Add dynamic visual effects and smooth animations to your custom PyQt6 widgets
Add dynamic visual effects and smooth animations to your custom PySide2 widgets
Add smooth animations and dynamic visual effects to your PySide6 custom widgets
Build a completely functional custom widget from scratch using QPainter
Build a completely functional custom widget from scratch using QPainter
Add dynamic visual effects and smooth animations to your custom PyQt5 widgets
Create custom plots in PySide with PyQtGraph
Build a completely functional custom widget from scratch using QPainter
Build a completely functional custom widget from scratch using QPainter
Run background tasks concurrently without impacting your UI
Run background tasks concurrently without impacting your UI
Run background tasks concurrently without impacting your UI
Run background tasks concurrently without impacting your UI
Using the drag and drop editor to build PySide6 dialogs
Using the drag and drop editor to build PyQt6 dialogs
Using the drag and drop editor to build PySide2 dialogs
Using the drag and drop editor to build PyQt5 dialogs
Custom Toggle Switch Widget as a QCheckBox Replacement
Filling irregular regions in a QPainter canvas with Python
Use Qt's BackgroundRole to color entire rows based on your data
Why your PyQt worker thread stops responding after the first click, and how to fix it
How to synchronize axis scaling across multiple PyQtGraph plots
Why self.parent() doesn't mean what you think it means
Use Qt Designer to effortlessly build your application UI
Add quick access functions to your apps
Secure your desktop applications with login flows, token-based auth, and role-based access control
What's the difference between the two Python Qt libraries? ...and what's exactly the same (most of it)
Comparing the Python GUI libraries available in 2026
Why your app icon disappears after packaging and how to fix it
Build system tray and menu bar apps with PySide2 and Qt
PyQt6 & PySide6 books updated for 2025 with model view controller architecture, new Python/Qt features and more examples
Use QItemDelegate to embed combo boxes in your table views, with per-row data and value tracking
Use widget promotion to integrate your own Python widgets into Qt Designer layouts
Reading sourced Bash environment variables from your Python Qt application
Approaches to embedding terminals and external applications inside your PyQt5 or PySide2 GUI
The QTextEdit widget does 90% of the work
Using QPushButton, QCheckBox, QComboBox, QLabel and QSlider widgets
Use Qt Designer's drag and drop interface to design your GUI
Learn how to add interactive sorting and filtering to your PyQt/PySide table views without touching your underlying data