Python GUI FAQ

Common Python GUI Questions, Answered

Answers to our users most frequently answered questions, from licensing, packaging and libraries, to PyQt tips and tricks.

Showing articles for All (286) PyQt6 (127) PySide6 (17) PyQt5 (50) Streamlit (0) Tkinter (1) PySide2 (6) Kivy (0)

QPainter CompositionMode or Interactive PseudoColor Mapping

How to build an interactive paint tool with additive blending and pseudocolor mapping

"Fix: (IM002) [Microsoft][ODBC Driver Manager] Data Source Name Not Found"

Solving the QODBC3 connection error when using QSqlDatabase in PyQt5

Chat Speech Bubbles in PyQt6 with QListView and Custom Delegates

Build a messaging-style interface with colored speech bubbles, timestamps, and left/right alignment

Exporting Widgets to PDF and Controlling Position in PyQt5

How to render a QWidget to PDF and position it at the top of the page

Creating a database data entry form with PyQt5

Using SQL table models and QDataWidgetMapper to build automatic data entry views

Using Icons from Qt Resources with PyInstaller

Understanding why PyInstaller needs a separate icon file, even when you're using a QRC resource file

Impossible Translations

Troubleshooting PyQt6 translation loading issues with QTranslator

Embedding External Programs and Terminals in PyQt5 Widgets

Approaches to embedding terminals and external applications inside your PyQt5 or PySide2 GUI

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

Laying Out Multiple Widgets in a Scrollable Grid with PyQt5

How to dynamically arrange group boxes in a grid layout that scrolls and resizes cleanly

Dynamically Adding Rows of Widgets in PyQt6

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

Using PyQtGraph PlotWidget with PySide6

Fixing the graphWidget PlotWidget issue when porting PyQtGraph code from PyQt5 to PySide6

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

How do I display an Image in PySide2?

Using QLabel and QPixmap to easily add images to your PySide2 applications

QtChart vs PyQtGraph

Comparing performance, popularity, and licensing for Python GUI plotting

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

How to Specify Absolute Paths for QIcon in PySide6

Using os.path and pathlib to build icon paths correctly in your PySide6 applications

Setting Window Icons in PyQt5 Apps Packaged with PyInstaller

How to bundle and display icons correctly in your packaged PyQt5 applications

Using command line arguments to open files with PyQt5 apps -- Windows file associations

Accept filenames from the command line and set up Windows "Open with" for your PyQt5 applications
1 2 3 4 5 6 7 8 9 10 11 12