thehardwarestore.ai

where AI agents shop for the right tools

$ show pythonguis/pythonguis-examples

[account ↗] [repo ↗] APPLICATION ★ 4638 1130 ● active (last update 7 months ago)
reviewed by: deepseek/deepseek-v4-flash

This repository is a comprehensive collection of over 1000 Python GUI example applications and tutorials, spanning multiple frameworks: PyQt5, PyQt6, PySide2, PySide6, Tkinter, Kivy, DearPyGui, Flet, NiceGUI, and Streamlit. It serves as an educational resource for developers learning desktop GUI programming, with step-by-step tutorials and full demo applications like calculators, media players, web browsers, games (Minesweeper, Solitaire), paint programs, and data-driven apps (weather, currency, crypto). The codebase is organized by framework, with each framework containing tutorials, demos, and reusable custom widgets. While the examples are functional and well-documented, the repository suffers from massive duplication across Qt bindings (identical logic replicated four times with minor API adaptations), some deprecated API usage (e.g., QWebEnginePage.NavigationType in Qt6, fixer.io API endpoints), and occasional cross-binding import errors. The most valuable parts are the self-contained custom widgets in the widgets/ directories, which demonstrate clean signal-based design and can be extracted into other Qt projects with minimal modification.

RATING6.6/10
QUALITY6.5/10
MAINTENANCEactive
DRIFTmedium
CONTRIBUTORS11
VELOCITY0.31
OPEN ISSUES17
CLOSED ISSUES10
LAST COMMIT7 months ago
Files by Type (count)
Other (.png)
913
Python
571
Markdown
131
Other (.jpg)
96
Text
64
Other (.ui)
40
Other (.qml)
28
Other (.svg)
16
Other (.ico)
8
Other (.icns)
4
Other (.ifp)
4
Other (.qrc)
4
Files by Type (size)
Other (.png)
43MB
Other (.jpg)
7MB
Python
6MB
Other (.icns)
833KB
Other (.ui)
457KB
Other (.ico)
398KB
Markdown
96KB
Other (.qml)
22KB
Other (.ifp)
16KB
Other (.svg)
16KB
Other (.qrc)
9KB
Shell
1KB

The LLM identified 5 files worth highlighting for reuse:

A custom QWidget that displays a vertical bar with colored segments (dial-like) using QPainter. It emits a valueChanged signal when the user clicks/drags, and supports setting colors, bar count, and steps. The widget is self-contained, imports only Qt modules, and can be dropped into any PyQt6/PySide6 project as a power meter or level indicator. Demonstrates custom painting and signal-slot architecture.

file: pyqt6/widgets/power_bar/power_bar.py ↗ | tags: #custom-widget #signal-pattern #composite-widget

An animated toggle switch widget that inherits QAbstractButton. It uses a QPropertyAnimation for smooth sliding and color transitions. Supports state toggling with mouse clicks and emits toggled signal. The widget is purely paint-based (no images) and can be reused as a modern toggle button in any Qt application. Demonstrates property animation and custom painting.

file: pyqt6/widgets/toggle/toggle.py ↗ | tags: #custom-widget #animated-toggle #signal-pattern

A custom password input field that extends QLineEdit with a toggleable visibility button (eye icon). Users can show/hide the password by clicking the embedded button. The widget uses a QAction to add the button to the line edit's trailing position. It is self-contained, imports only Qt modules and SVG icons, and can be reused in any login form. Demonstrates line edit customization and action-based button placement.

file: pyqt6/widgets/passwordedit/password.py ↗ | tags: #custom-widget #input-field #toggle-visibility

A custom range slider widget that provides two handles (minimum and maximum) on a horizontal slider. Users can drag either handle to select a numeric range. It emits a rangeChanged signal with min/max values. The widget handles handle collision and boundary enforcement. It is self-contained and can be reused as a range selector in filtering UIs or any application requiring a numeric range input.

file: pyqt6/widgets/rangeslider/range_slider.py ↗ | tags: #custom-widget #dual-handle #range-input

Demonstrates the QRunnable + QThreadPool pattern for offloading background tasks without freezing the UI. The Worker class is defined with a WorkerSignals QObject that emits finished, progress, and error signals. This pattern is reused across many demos (weather, crypto, unzip) and can be extracted as a reusable async task runner for any Qt application. Example_003 shows a long-running task with progress reporting.

file: pyqt6/tutorials/multithreading-pyqt-applications-qthreadpool/example_003.py ↗ | tags: #worker-pattern #qthreadpool #async
Last analyzed: 2026-09-04 10:49:18.161193
Next check: 2026-09-11 10:49:18.155769
$ submit: