15 Minute Apps

Build common desktop apps in Python using PyQt — with full source code
Heads up! You've already completed this tutorial.

A collection of 15 small — minute — desktop applications written in Python using the PyQt framework. These Python GUI apps are intended as examples from which you can poke, hack and prod your way to writing your own desktop tools.

The 15 PyQt Desktop Apps

The apps showcase various parts of the Qt framework, including advanced widgets, multimedia, graphics views and decorationless windows. However, the most generally interesting/feature complete applications are Minesweeper, Solitaire and Paint.

The source code for all apps is available in the Github repository. All code is MIT licensed and free to use to in your own projects.

Web Browser in Python — "MooseAche"

Python web browser built with PyQt and QtWebEngineWidgets

An example web browser built with Python and Qt. Using the QtWebEngineWidgets system introduced in Qt5.6, this provides a single-window browsing experience with the usual controls, as well as saving and loading HTML.

Tabbed Web Browser in Python — "Mozzarella Ashbadger"

Tabbed web browser built with Python and PyQt

Mozarella Ashbadger is the latest revolution in web browsing! Go back and forward! Print! Save files! Get help! (you'll need it). Any similarity to other browsers is entirely coincidental.

Minesweeper Game in Python — "Moonsweeper"

Minesweeper game built with Python and PyQt

Explore the mysterious moon of Q'tee without getting too close to the alien natives!

Moonsweeper is a single-player puzzle game based on the classic Minesweeper. The objective of the game is to explore the area around your landed space rocket, without coming too close to the deadly B'ug aliens. Your trusty tricounter will tell you the number of B'ugs in the vicinity.

Notepad Application in Python — "No2Pads"

Simple notepad application built with Python and PyQt

A very simple notepad clone using the QTextEdit widget to handle more or less everything. Supports file loading, saving and printing.

Calculator Application in Python — "Calculon"

Calculator application built with Python and PyQt

A simple calculator application implemented in Python using PyQt. The UI was designed in Qt Designer and the calculator operations are implemented using simple stack-based logic.

Word Processor in Python — "Megasolid Idiom"

Word processor built with Python and PyQt

The word processor for all your small, poorly formatted documents. An extension of the notepad, again using a QTextEdit but with rich text editing enabled.

Webcam/Snapshot App in Python — "NSAViewer"

Webcam snapshot application built with Python and PyQt

With this webcam snapshot application you can take photos of what is currently being viewed by your webcam. Uses the Qt QtMultimedia framework for handling all the interaction with the camera, and supports multiple cameras if you have them.

Media Player in Python — "Failamp"

Media player built with Python and PyQt

Simple app to listen to and watch videos and audio files, with built in playlist. Uses QtMultimedia and QtMultimediaWidgets to handle playback and manage the playlist.

Post-it Notes App in Python — "Brown Note" (Qt Designer)

Sticky notes desktop app built with Python and PyQt

Take temporary notes on your desktop, with this floating-note app. Notes are stored locally in a SQLite database.

Paint App in Python — "Piecasso" (Qt Designer)

Paint application built with Python and PyQt

Express yourself with PieCasso, the only painting app to feature ready made pictures of pie.

Piecasso is a clone of the Paint programme from Windows 95 (ish) with a few additions (and subtractions). The programme features standard tools including pen, brush, fill, spray can, eraser, text and a number of shapes.

Unzip Tool in Python — "7Pez" (Qt Designer)

Unzip utility built with Python and PyQt

Unzip your files with a cat. Drag-drop your zip file onto the floaty cat, and fill up it's Pez-file repository. Press the head to release the Pez (your files) into the same folder.

Translator App in Python — "Translataarrr" (Qt Designer)

Translation application built with Python and PyQt

A translator from any language (supported by Google translate) to pirate. This uses a remote API from http://api.funtranslations.com for English to Pirate translation, and a unofficial Python wrapper around Google translate for other languages to English.

Weather App in Python — "Raindar" (Qt Designer)

Weather application built with Python and PyQt

Get your daily weather and 15hr forecast. Data is provided by the free weather and forecast API from https://openweathermap.org/

Currency Converter in Python — "Doughnut" (PyQtGraph)

Currency converter built with Python and PyQt

This is a simple currency exchange rate tracker implemented in PyQt, using the fixer.io API for data. The default setup shows currency data for the preceding 180 days.

Solitaire Card Game in Python — "Ronery" (QGraphicsScene)

Solitaire card game built with Python and PyQt

The classic card Solitaire (Klondike) game with a North Korea / Team America: World Police theme. The game is otherwise identical, offering the same options. Built with PyQt, it uses QGraphicsScene to handle the play area.

Getting Started with These Python GUI Apps

To use each app you first need to install the requirements. In most cases the only requirements are PyQt5, and occasionally requests (for http requests). To install app-specific requirements change to the folder of the app and run:

python
pip3 install -r requirements.txt

Once the requirements are installed, you can run the app using Python 3.

python
python3 <filename>.py

The application window should appear.

Learn Python GUI Programming by Example

These 15 PyQt desktop applications provide practical, hands-on examples of Python GUI development. Whether you're building a simple calculator or a full-featured paint application, each project demonstrates key concepts in Qt widget programming, event handling, and application design. Browse the source code, modify it, and use it as a foundation for your own Python desktop applications.

License

All code is licensed under an MIT license. This allows you to re-use the code freely, remixed in both commercial and non-commercial projects. The only requirement is to include the same license when distributing.

The intent here is to allow as many people as possible to make use of this code, so you if you have specific license requirements or questions, feel free to ask — the answer is probably "yes."

Icons used in the applications are by Yusuke Kamiyaman.

Well done, you've finished this tutorial! Mark As Complete
[[ user.completed.length ]] completed [[ user.streak+1 ]] day streak

PyQt/PySide 1:1 Coaching with Martin Fitzpatrick

Save yourself time and frustration. Get one on one help with your Python GUI projects. Working together with you I'll identify issues and suggest fixes, from bugs and usability to architecture and maintainability.

Book Now 60 mins ($195)

Martin Fitzpatrick

15 Minute Apps was written by Martin Fitzpatrick.

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.