Metadata-Version: 2.4
Name: plwidgets
Version: 0.1.1
Summary: Custom PySide6 UI widgets for Python applications
Author-email: Pierre-Lou Guilloré <pl.guillore@gmail.com>
License-Expression: MIT
Project-URL: Homepage, https://github.com/ThePeterWolf/pl-widgets
Project-URL: Documentation, https://github.com/ThePeterWolf/pl-widgets#readme
Requires-Python: >=3.7
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: PySide6>=6.3
Dynamic: license-file

# plwidgets

**plwidgets** is a custom widget library built on top of PySide6, offering modern UI components like sliders, toggles, progress indicators, and more — designed to give your PyQt/PySide apps a polished look.

---

## 🖼 UI Preview

![Demo interface](assets/pl_widgets_preview_01.png)

---

## 📦 Installation

```bash
pip install plwidgets
```

> Note: You must have `PySide6` installed. If not:

```bash
pip install PySide6
```

---

## 🧩 Available Widgets

| Widget | Description |
|--------|-------------|
| `PlCheckBox` | Custom checkbox with styling. |
| `PlCheckButtonGroup` | Group of toggle buttons (single or multi-select). |
| `PlComboBox` | Styled dropdown selector. |
| `PlDialog` | Base dialog window container. |
| `PlFlag` | Titled content container with a styled header. |
| `PlFormWidget` | Labeled horizontal layout for form elements. |
| `PlLineEdit` | Styled single-line text input. |
| `PlLoadingIndicator` | Animated loading spinner. |
| `PlOverlayDialog` | Modal overlay popup with blur or dimming. |
| `PlProgressCircle` | Circular progress indicator with text. |
| `PlPushButton` | Custom push button with hover and press effects. |
| `PlRoundCheckButton` | Rounded toggle button (styled checkbox). |
| `PlSearchBar` | Input with icon for search actions. |
| `PlSlider` | Custom horizontal slider. |
| `PlTabWidget` | Custom tab navigation with painted tabs. |

---

## 🧪 Quick Example

```python
from PySide6 import QtWidgets
from plwidgets import PlWidgets

app = QtWidgets.QApplication([])

window = PlWidgets.PlDialog()
layout = QtWidgets.QVBoxLayout(window)

slider = PlWidgets.PLSlider()
slider.enableStep(10)

toggle = PlWidgets.PlCheckBox()
toggle.setChecked(True)

layout.addWidget(slider)
layout.addWidget(toggle)

window.show()
app.exec()
```

---

## 🎨 Styling with QSS

All widgets support custom styles using Qt Style Sheets (QSS):

```css
PLSlider {
    background-color: #cccccc;
    thumb-color: #3498db;
}

PlCheckBox {
    handle-color: #ffffff;
    background-color: #888888;
}
```

---
## 📚 API Reference

See the [docs (WIP!)](./docs/README.md) for detailed information on each widget.

---

## 📄 License

MIT License © Pierre-Lou Guilloré

