Fluent WinUI3 QML style helper for PySide6 (copies assets from local PySide6 install)
Project description
FluentPySide
fluentpyside packages the FluentWinUI3 Qt Quick Controls style so PySide6 apps can apply the Fluent theme easily.
Quick Start — three ways
- Install the wrapper package and use the helper (recommended)
Prerequisites:
- Python 3.8+
- PySide6 (and optionally PySide6-Essentials for upstream plugin binaries)
Install and run:
pip install PySide6
pip install -e . # from this repository root (development install)
python examples/demo.py
Minimal example (use fluentpyside.set_style):
from PySide6.QtWidgets import QApplication
from PySide6.QtQml import QQmlApplicationEngine
import fluentpyside
app = QApplication([])
engine = QQmlApplicationEngine()
# Ensure package-local QML assets exist (copies from installed PySide6 when missing)
fluentpyside.install_assets()
# Add import path and try to set the QtQuickControls2 style plugin
fluentpyside.set_style(engine=engine)
# Load QML that imports FluentWinUI3
engine.load('examples/gallery.qml')
app.exec()
- Drag-and-drop the style into a project (no packaging)
- Copy
fluentpyside/QtQuickinto your project root so there is./QtQuick/Controls/FluentWinUI3/qmldir. - In Python, add your project root as a QML import path before loading QML:
from PySide6.QtWidgets import QApplication
from PySide6.QtQml import QQmlApplicationEngine
app = QApplication([])
engine = QQmlApplicationEngine()
engine.addImportPath('path/to/project/root')
engine.load('main.qml')
app.exec()
- Run the included gallery demo
pip install PySide6
pip install -e .
python examples/demo.py
Files included
- fluentpyside/: Python wrapper and packaged QML assets
- examples/demo.py: demo app that loads examples/gallery.qml
- examples/gallery.qml: QML demo UI (gallery of controls)
- tests/smoke_test.py: non-interactive smoke test
Publishing & GitHub
-
I will not publish/delete on your behalf without explicit credentials and confirmation.
-
To publish to PyPI locally:
python -m build python -m twine upload dist/*
-
To create or replace a GitHub repo locally with
gh:gh repo create /FluentPySide --public --source=. --push
(If you want me to run these steps from this environment, provide the tokens and explicit confirmation.)
Notes and troubleshooting
- Call
fluentpyside.set_style(engine=engine)orengine.addImportPath(...)before loading QML that imports QtQuick.Controls.FluentWinUI3. - The package contains a copy of the QML files and (on Windows) the plugin DLL copied from your local PySide6 installation. Packaging platform binaries for cross-platform distribution is not recommended; instead require PySide6-Essentials on the target platform.
License
- Wrapper: MIT License (file LICENSE)
- Upstream QML assets: copied from the locally installed PySide6 / PySide6-Essentials package. Follow Qt/PySide licensing when redistributing.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file fluentpyside-0.1.1.tar.gz.
File metadata
- Download URL: fluentpyside-0.1.1.tar.gz
- Upload date:
- Size: 1.6 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0970502cbbb32bf10d9b795870733ab3743fbb2d4bda9a2daf4308d43f97fd19
|
|
| MD5 |
6ab8269ffafff722cfaf27f1c1b2ea87
|
|
| BLAKE2b-256 |
9ad6a0a4f39954741d95f746bffc7f83fd6d0f5eb5694fd2c25a0bfb40dea35c
|
File details
Details for the file fluentpyside-0.1.1-py3-none-any.whl.
File metadata
- Download URL: fluentpyside-0.1.1-py3-none-any.whl
- Upload date:
- Size: 2.0 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a9162810ad33def4cfa6c26b7e4fdcc1ca5a89453ea991b0a04e43b42e185457
|
|
| MD5 |
93377ffecf9bcb7056e55f0175b77221
|
|
| BLAKE2b-256 |
e11816e83e48fc2978b6a7d91e3e5e1993a7d276fa39f150e1dfe57f5fd96f66
|