Changelog

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

Creating custom GUI widgets in PyQt6

Build a completely functional custom widget from scratch using QPainter

Creating custom GUI widgets in PySide6

Build a completely functional custom widget from scratch using QPainter

Creating custom GUI widgets in PySide2

Build a completely functional custom widget from scratch using QPainter

Creating custom GUI widgets in PyQt5

Build a completely functional custom widget from scratch using QPainter

Getting Started With NiceGUI for Web UI Development in Python

Your First Steps With the NiceGUI Library for Web UI Development

Getting Started With DearPyGui for GUI Development

Your First Steps With the DearPyGui Library for Desktop Python GUIs

Multithreading PyQt6 applications with QThreadPool

Run background tasks concurrently without impacting your UI

QPainter and Bitmap Graphics in PyQt6

Introduction to the core features of QPainter

Using QProcess to Run External Programs in PySide6

Run background programs without impacting your UI

Using QProcess to Run External Programs in PyQt6

Run background programs without impacting your UI

Using QProcess to Run External Programs in PySide2

Run background programs without impacting your UI

Using QProcess to Run External Programs in PyQt5

Run background programs without impacting your UI

PyQt5 Signals, Slots & Events

Triggering actions in response to user behaviors and GUI events

First Steps With Qt Designer and PySide6

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

First Steps With Qt Designer and PySide2

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

The ModelView Architecture in PyQt6

Qt's MVC-like interface for displaying data in views

PySide6 Widgets

Using QPushButton, QCheckBox, QComboBox, QLabel, and QSlider widgets

PyQt6 Widgets

Using QPushButton, QCheckBox, QComboBox, QLabel and QSlider widgets

Creating Searchable Widget Dashboards in PyQt6

Make dashboard UIs easier to use with widget search & text prediction

PyQt6 vs PySide6

What's the difference between the two Python Qt libraries? ...and what's exactly the same (most of it)

Creating Searchable Widget Dashboards in PySide6

Make dashboard UIs easier to use with widget search & text prediction

Using the Pack Geometry Manager in Tkinter

Laying out widgets with the Pack geometry manager

Tkinter Widgets

A walkthrough of Tkinter's basic widgets

Q&A: How can I enable editing on a QTableView in PySide6?

Modifying your model to allow editing of your data source

Multithreading PySide6 applications with QThreadPool

Run background tasks concurrently without impacting your UI

Multithreading PySide2 applications with QThreadPool

Run background tasks concurrently without impacting your UI

Multithreading PyQt5 applications with QThreadPool

Run background tasks concurrently without impacting your UI

Q&A: How can I enable editing on a QTableView in PyQt6?

Modifying your model to allow editing of your data source

Q&A: How to check if a QLineEdit is empty?

Empty strings are falsey in Python

Which Python GUI library should you use?

Comparing the Python GUI libraries available in 2025

How to Get the PyQt5 Version Number?

Find out which version of PyQt5 you're running

How to Get the PyQt6 Version Number?

Find out which version of PyQt6 you're running

Q&A: How can I enable editing on a QTableView in PyQt5?

Modifying your model to allow editing of your data source

Q&A: How can I enable editing on a QTableView in PySide2?

Modifying your model to allow editing of your data source

Basic Kivy Widgets

Learn the Basics of UX Widgets in Kivy

Getting Started With Kivy for GUI Development

Your First Steps With the Kivy Library for GUI Development

Customizing Your Tkinter App's Windows

Make Your Tkinter App's Windows Have Different Looks

Input Validation in Tkinter GUI Apps

Validate User Input When Creating Apps With Tkinter and Python

Using the Grid Geometry Manager in Tkinter

Laying out widgets with the grid geometry manager

Use Tkinter to Design GUI Layouts

Create GUI layouts using the Frame widget, Tkinter, and Python

The ModelView Architecture in PySide6

Qt's MVC-like interface for displaying data in views

The ModelView Architecture in PySide2

Qt's MVC-like interface for displaying data in views

The ModelView Architecture in PyQt5

Qt's MVC-like interface for displaying data in views

PySide2 Widgets

Using QPushButton, QCheckBox, QComboBox, QLabel and QSlider widgets

PyQt5 Widgets

Using QPushButton, QCheckBox, QComboBox, QLabel and QSlider widgets