Metadata-Version: 2.4
Name: pyside6-modern-widgets
Version: 0.1.2
Summary: Modern frameless windows, navigation, and tabs for PySide6 on Windows
Author: pyside6-modern-widgets contributors
License-Expression: MIT
Project-URL: Repository, https://github.com/zero-ljz/pyside6-modern-widgets
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Win32 (MS Windows)
Classifier: Operating System :: Microsoft :: Windows
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Software Development :: User Interfaces
Classifier: Typing :: Typed
Requires-Python: <3.13,>=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
License-File: THIRD_PARTY_NOTICES.md
Requires-Dist: PySide6==6.8.3
Provides-Extra: dev
Requires-Dist: mypy>=1.13; extra == "dev"
Requires-Dist: pytest>=8.3; extra == "dev"
Requires-Dist: ruff>=0.9; extra == "dev"
Dynamic: license-file

# pyside6-modern-widgets

Focused Windows desktop widgets for PySide6. The package provides frameless
window chrome, navigation, tabs, and lightweight Windows visual effects while
retaining familiar Qt widget APIs.

- `ModernWindow`: a lightweight, frameless `QWidget` window with selected
  `QMainWindow`-compatible methods and Windows 11 effects.
- `NavigationSidebar`: a collapsible navigation sidebar.
- `NavigationView`: a sidebar and synchronized page stack in one widget.
- `TabView`: a WinUI-inspired tab widget.
- `WindowEffect`: a small Windows DWM effect wrapper.

## Supported environment

Supports only Windows 10 and 11, Python 3.10-3.12, PySide6 6.8.3, and the Fusion style in light mode.

## Installation

```shell
pip install pyside6-modern-widgets
```

## Example

```python
from PySide6.QtGui import QAction
from PySide6.QtWidgets import QApplication, QLabel

from pyside6_modern_widgets import ModernWindow

app = QApplication([])
window = ModernWindow()
window.setWindowTitle("Modern window")

file_menu = window.menuBar().addMenu("&File")
exit_action = QAction("Exit", window)
exit_action.triggered.connect(window.close)
file_menu.addAction(exit_action)

window.setCentralWidget(QLabel("Hello"))
window.resize(800, 500)
window.show()
app.exec()
```

The native window effects target Windows. On unsupported Windows versions or
when transparency is disabled, the window automatically uses a painted fallback.

Runnable window/navigation and multi-tab examples are available in the
[`examples`](examples) directory.

`ModernWindow` intentionally remains based on `QWidget`, so it is suitable for both
primary and auxiliary windows. Its compatibility surface is limited to the common
`menuBar()`, `addToolBar()`, `statusBar()`, and `setCentralWidget()` methods; it does
not implement `QMainWindow` docking or state-management features.

The bundled window and navigation icons are provided by
[Icons8](https://icons8.com) and remain subject to the Icons8 license.
