Skip to main content

PyQt6/PySide6-Qlementine

PyQt6/PySide6 Bindings for (the amazing) Qlementine

Modern QStyle for desktop Qt6 applications... ready for Python!

Installation

pip install PyQt6-Qlementine
# or 
pip install PySide6-Qlementine

Usage

# or PySide6 & PySide6Qlementine
from PyQt6.QtWidgets import QApplication
from PyQt6.QtCore import QJsonDocument
from PyQt6Qlementine import QlementineStyle, Theme

app = QApplication([])

# Apply Qlementine as the application style
# (this alone will apply the default Qlementine theme, which is lovely)
style = QlementineStyle(app)
app.setStyle(style)

# Define a custom theme, for all keys, see:
# https://oclero.github.io/qlementine/theme/#full-example
theme_dict = {
    "meta": {"name": "Custom", "author": "Your Name", "version": "1.0"},
    "primaryColor": "#ff00ff",
    "backgroundColorMain1": "#1a1a2e",
    "backgroundColorMain2": "#1a1a2e",
}

theme = Theme.fromJsonDoc(QJsonDocument.fromVariant(theme_dict))
style.setTheme(theme)

See C++ documentation for more information.

See also examples in this repo.

The autogenerated type stubs are also useful for understanding the API.

Why QStyle over QSS?

If you're coming from the Python Qt ecosystem, you're likely used to theming via Qt Style Sheets (QSS) — every major Python theming library (QDarkStyleSheet, qt-material, BreezeStyleSheets, etc.) relies on them.

QSS is easy to author, but it comes with serious trade-offs: it breaks setPalette() and setFont(), ignores system dark/light mode changes, forces you to restyle all sub-controls when you customize one, and adds measurable startup and reparenting cost from CSS parsing.

A proper parametrized QStyle implementation (like Qlementine) avoids all of this — colors, spacing, animations, border-radii, and pixel metrics are computed natively in C++ with full QPainter access, zero parsing overhead, and complete respect for QPalette. The reason Python libraries haven't taken this approach is that subclassing QProxyStyle in Python incurs a C++/Python boundary crossing on every paint call, making it unperformant for anything beyond icon overrides.

Qlementine sidesteps that entirely: the style is implemented in C++ and simply exposed to Python (through these bindings), giving you the correctness and performance of a native QStyle implementation with the ease of use of a Python library (and parametrized geometry, colors, animations, and fonts through Qlementine's Theme API).

License

The code in this repository is licensed under the MIT License.

The packaged/distributed bindings are:

See the LICENSE file in each package for more details.

Developers & Contributing

Contributions are welcome! See CONTRIBUTING.md for dev tips.

Metadata

Release files for PySide6-Qlementine 1.5.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for PySide6-Qlementine 1.5.1.0
File Interpreter ABI Platform
pyside6_qlementine-1.5.1.0-cp310-abi3-win_amd64.whl CPython 3.10 abi3 Windows x86-64 Details
pyside6_qlementine-1.5.1.0-cp310-abi3-manylinux_2_34_x86_64.whl CPython 3.10 abi3 Linux glibc 2.34+ x86-64 Details
pyside6_qlementine-1.5.1.0-cp310-abi3-macosx_11_0_arm64.whl CPython 3.10 abi3 macOS 11.0+ ARM64 Details

Total release size: 7.8 MB

Release files / pyside6_qlementine-1.5.1.0-cp310-abi3-win_amd64.whl

Download URL pyside6_qlementine-1.5.1.0-cp310-abi3-win_amd64.whl
Size 2.4 MB
Tags CPython 3.10 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
3ab0f5e51a5ce5936804212e1c69106c5b4671be8fafbae56d7a56de0741069f
BLAKE2b-256 checksum
How to use checksums
8c131b2fe59475046fc0b383637b631390dc5c2c50817f53b60c8a9886be7b6b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 5, 2026.

Transparency log

Release files / pyside6_qlementine-1.5.1.0-cp310-abi3-manylinux_2_34_x86_64.whl

Download URL pyside6_qlementine-1.5.1.0-cp310-abi3-manylinux_2_34_x86_64.whl
Size 2.7 MB
Tags CPython 3.10 Linux glibc 2.34+ x86-64 abi3
SHA-256 checksum
How to use checksums
82beaef555a7c4bbe57f1f4c5fc1a659f8d40397107b1d2147ffe898b6d62e8f
BLAKE2b-256 checksum
How to use checksums
b33551e6de2222c5d7342b299668f80936b4e2107cf87d9a0c94a7cd23482942
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 5, 2026.

Transparency log

Release files / pyside6_qlementine-1.5.1.0-cp310-abi3-macosx_11_0_arm64.whl

Download URL pyside6_qlementine-1.5.1.0-cp310-abi3-macosx_11_0_arm64.whl
Size 2.6 MB
Tags CPython 3.10 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
1e56ddcfc9629c88dae9a5de11ccbdc731787c5ceb977e5d0f3b8cffe1f4f91d
BLAKE2b-256 checksum
How to use checksums
13dbffe0089c154a257ed08c54cd7ca236f093358d5a80ae9daadc597f16ac97
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 5, 2026.

Transparency log
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page