Martin Fitzpatrick
Senior Software Engineer, Python Tutor

Martin Fitzpatrick has been developing Python/Qt apps for 8 years. Building desktop applications to make data-analysis tools more user-friendly, Python was the obvious choice. Starting with Tk, later moving to wxWidgets and finally adopting PyQt. Martin founded PythonGUIs to provide easy to follow GUI programming tutorials to the Python community. He has written a number of popular Python books on the subject.

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

PyQt6 or PySide6 for Commercial & Embedded Applications?

Understanding Qt licensing for Python apps you plan to sell or distribute without sharing source code

Transmitting Extra Data With Qt Signals in PyQt5

Modifying widget signals to pass contextual information to slots

PySide2 Layouts

Use layouts to effortlessly position widgets within the window

Fixing "DLL load failed" and Import Errors with PySide6 on Windows

Understanding why PySide6 imports fail in certain IDEs and how to fix it

Drawing Dots on an Image with Mouse Clicks in PyQt6

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

PySide2 Dialogs and Alerts

Notify your users and ask for their input

PySide2 Signals, Slots & Events

Triggering actions in response to user behaviors and GUI events

System Tray Icons Not Showing or Not Closing on Windows

Troubleshooting common issues with QSystemTrayIcon on Windows 10 and 11

PySide2 Widgets

Using QPushButton, QCheckBox, QComboBox, QLabel and QSlider widgets

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.

Fixing Crashes When Using NumPy Arrays with QImage in Qt Threads

How to safely pass image data between threads when streaming video or updating displays

Creating PySide6 UI without .ui / Qt Designer

Build your entire GUI in pure Python code, no .ui files required

Handling Image Drag and Drop from Web Browsers in PyQt6

Why toLocalFile() returns an empty string and how to handle remote image drops correctly

GUI freezing while updating (result from QRunner)

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

How to Reference the App Context from a Window in fbs ApplicationContext

Passing the ApplicationContext to your MainWindow when using fbs for PyQt5 packaging

Fixing "No such file or directory" for .ui Files When Using fbs freeze

Why your .ui file works with fbs run but breaks after freezing, and how to fix it

ModuleNotFoundError: No module named 'fbs_runtime'

How to fix the 'fbs_runtime' import error when running fbs projects outside of the fbs environment

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
Showing articles for All (25) PyQt6 (9) PySide6 (2) PyQt5 (5) Streamlit (0) Tkinter (0) PySide2 (4) Kivy (0)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18