Skip to main content

PySide-Quasar ⚛️

Enterprise-grade UI components for PySide. Quasar aesthetics, Pure QPainter, Zero QSS.

English | 简体中文

PyPI version Python Version License GitHub Stars

PySide-Quasar is a modern, enterprise-grade UI component framework for PySide. Inspired by the design language of Vue's Quasar Framework, it brings Material Design aesthetics to desktop applications using pure QPainter rendering with ZERO QSS (Qt Style Sheets) dependencies.

It eliminates the common pain points of QSS—such as cross-platform rendering inconsistencies, performance bottlenecks, and style breakages—making it the perfect choice for industrial control panels, monitoring dashboards, and complex enterprise desktop clients.


💡 Here is a preview of the core components. (Replace the image URLs below with your actual GIFs!)

Components Showcase
Buttons & Checkboxes Buttons and Checkboxes
Dialogs & Badges Dialog and Badge

🤔 Why PySide-Quasar? (The "Zero QSS" Philosophy)

Traditional PySide/PyQt applications rely heavily on QSS. While fine for small apps, QSS scales poorly in enterprise systems. Here is why we went completely QSS-free:

Feature Traditional QSS Approach PySide-Quasar (Our Approach)
Rendering OS-dependent, often buggy with complex gradients. Pixel-perfect across Windows, macOS, and Linux.
Performance High CPU usage during rapid updates (e.g., industrial data). Blazing fast with optimized native QPainter.
High-DPI (4K) Blurry borders, broken scaling, jagged edges. Crisp & Sharp automatically adapts to devicePixelRatio.
Maintenance Hundreds of lines of unstructured CSS-like strings. Clean Python with strongly-typed APIs and theme engines.
PySide7/8 Future Style breakages requiring extensive rewrites. Future-proof, seamlessly migrates to future PySide versions.

✨ Core Features

  • 🚀 Zero QSS Dependency – Everything is drawn natively via QPainter.
  • 🧩 Quasar-Inspired Design – Beautiful Material Design components with smooth micro-animations.
  • 🔮 Future-Proof API – Built on an abstraction layer. Currently binds to PySide6, but fully prepared for PySide7/8.
  • 🖥️ 4K / Retina Ready – Deeply optimized for High-DPI screens. No more blurry icons or jagged lines.
  • 🎨 Dynamic Theme Engine – Native Light/Dark mode support. Automatic high-contrast text calculation.
  • 🛡️ Enterprise-Grade Typed – 100% Type hints. Perfect for PyCharm/VSCode intellisense and strict CI pipelines.
  • 📦 Lightweight & Packable – No WebViews, no heavy assets. Very friendly for PyInstaller.

📦 Installation

pip install pyside-quasar

Dependencies:

  • PySide6 >= 6.6.0
  • typing-extensions

🚀 Quick Start

import sys
from PySide6.QtWidgets import QApplication, QMainWindow, QWidget, QVBoxLayout
from pyside_quasar.components import Button, Checkbox, Dialog
from pyside_quasar.theme import QuasarTheme

if __name__ == "__main__":
    app = QApplication(sys.argv)
    
    # 1. Apply Dark Theme (Native rendering)
    QuasarTheme.apply_dark()

    # 2. Create your main window
    win = QMainWindow()
    win.resize(800, 600)
    win.setWindowTitle("PySide-Quasar Demo")

    # 3. Use pure QPainter components
    central = QWidget()
    layout = QVBoxLayout(central)
    
    btn = Button(text="Open Dialog", color="primary", size="lg")
    chk = Checkbox(text="Enable Advanced Settings", checked=True)
    
    layout.addWidget(btn)
    layout.addWidget(chk)
    win.setCentralWidget(central)
    
    win.show()
    sys.exit(app.exec())

🧩 Components Ecosystem

We are actively expanding the ecosystem. Here is the current status:

Module Stable Components In Development
Primitives Button, Checkbox, Avatar, Badge Input, Switch, Select
Containers Dialog Card, Tabs, Drawer
Feedback - Toast, Notify, Progress
Data - Table, Pagination

🎨 Theming System

Say goodbye to messy stylesheets. Control your entire app's look with Python.

from pyside_quasar.theme import QuasarTheme

# 1. Toggle Light/Dark mode
QuasarTheme.apply_light()
QuasarTheme.apply_dark()

# 2. Set your enterprise brand color
QuasarTheme.set_brand_color("#1976D2")

# 3. Global border radius configuration
QuasarTheme.set_border_radius(6)

📐 Roadmap & Version Strategy

Because our package name pyside-quasar does not contain a version number, you are protected from ecosystem churn.

  • v1.x – Active development, binding to PySide6.
  • v2.x – Seamless transition to PySide7 (Zero code changes for UI layers).
  • v3.x – Future-ready for PySide8.

🤝 Contributing

We welcome contributions from the global community! Whether it's a bug report, a new component, or a documentation fix, your help is appreciated.

# Clone the repository
git clone https://github.com/eagleye-china/pyside-quasar.git
cd pyside-quasar

# Install in editable mode for development
pip install -e .

# Build the package
python -m build

If you find this project useful, please consider giving it a ⭐️ on GitHub! It means a lot to us.


📜 License

MIT License. Commercial use is allowed. See the LICENSE file for details.

Metadata

Release files for pyside-quasar 0.2.0

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

Source distribution (sdist)

Source distribution for pyside-quasar 0.2.0
File Size Uploaded Provenance Actions
pyside_quasar-0.2.0.tar.gz 70.3 kB Without provenance Details for pyside_quasar-0.2.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for pyside-quasar 0.2.0
File Interpreter ABI Platform Actions
pyside_quasar-0.2.0-py3-none-any.whl Python 3 none any Details for pyside_quasar-0.2.0-py3-none-any.whl

Total release size: 157.8 kB

Release files / pyside_quasar-0.2.0.tar.gz

Download URL pyside_quasar-0.2.0.tar.gz
Size 70.3 kB
Tags Source
SHA-256 checksum
How to use checksums
498c71b31987155de7ca9075e944889cd1555523f1c96aebd3c0c591a0e68954
BLAKE2b-256 checksum
How to use checksums
2e077a82ff7c0befeae1fecaadd6871d854b20d06beaf52c8baada54d590b9b8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.7

Release files / pyside_quasar-0.2.0-py3-none-any.whl

Download URL pyside_quasar-0.2.0-py3-none-any.whl
Size 87.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d2ac7c7139d5f505fe7468a84de0740cadda8979ae223ecb1d2ec6fd4fa390b5
BLAKE2b-256 checksum
How to use checksums
b2b7848571ed1046d33f3d384b2073cf29b3c35e8476799645a877b18d940f4d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.7

Security for pyside-quasar 0.2.0

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.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files No provenance

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