GUIs & Games

PyQt5

The toolkit behind thousands of professional-looking desktop apps you'd never guess were built with Python.

Install it: pip install pyqt5

What does it do?

PyQt5 gives Python access to Qt, an industrial-strength toolkit for building desktop application interfaces, buttons, menus, windows, dialog boxes, that look and feel genuinely native rather than homemade. Picture the difference between a hand-drawn sign and a professionally printed storefront banner; Qt is what gives Python apps that polished, banner-quality look. It’s used for everything from simple utility programs to complex applications with dozens of interconnected windows and tools. Qt itself, the underlying toolkit, also powers plenty of non-Python software you’ve likely encountered, including parts of the Linux desktop environment KDE.

See it in action

This creates a small desktop app that shows nothing but a single clickable button.

import sys
from PyQt5.QtWidgets import QApplication, QPushButton

app = QApplication(sys.argv)
button = QPushButton("Click Me")
button.show()
sys.exit(app.exec_())

Why would a non-developer care?

It matters because the difference between an app that looks trustworthy and professional versus one that looks like a hobby project often comes down to exactly this kind of interface toolkit, and it’s a major reason Python is viable for serious desktop software, not just scripts and websites.

Real-world examples

PyQt has been used to build scientific instrument control software, financial trading tools, and professional creative applications where a clunky interface would undermine user trust. Qt more broadly, the toolkit PyQt wraps, powers desktop environments and applications used by millions of Linux users daily. Its long-standing rival PySide, now PySide6, exists specifically because of licensing disagreements over how PyQt could be used commercially.

Who uses it

Developers building professional-grade desktop applications, from scientific tools to business software, who need a polished native interface.

How it compares to alternatives

PyQt5 and PySide6 are nearly functionally identical since both wrap the same underlying Qt toolkit, but PyQt uses a stricter GPL or paid commercial license while PySide6 is backed directly by Qt’s own company under a more permissive license, which is why many new projects now default to PySide.

Fun fact

The licensing tension between PyQt and Qt’s own company eventually led Qt to release its own official Python bindings, PySide, creating a rare situation of two nearly identical libraries competing for the same niche.

New to Python and want to actually try libraries like this yourself?

Find a beginner-friendly course

Related libraries