Metadata-Version: 2.4
Name: qtarrow
Version: 0.1.1
Summary: A comprehensive, fully-featured PySide6 wrapper library designed to simplify UI loading, widget management, and desktop application development.
Author: Albiemer R. Porte
License: MIT
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: license.md
Requires-Dist: PySide6
Dynamic: license-file

# QtArrow

A comprehensive, fully-featured PySide6 wrapper library designed to simplify UI loading, widget management, and desktop application development.

---

## Installation

```bash
pip install qtarrow
```

Or for local development:

```bash
pip install -e .
```

---

## How to Use

### 1. UI Loading & App Runner (`ArrowUi` & `run_app`)

```python
from qtarrow.loadui import ArrowUi, run_app

class Main:
    def __init__(self):
        loader = ArrowUi("main.ui")
        self.ui = loader.load_ui()

    def show(self):
        self.ui.show()

if __name__ == "__main__":
    run_app(Main)
```

### 2. Automatic Widget Attachment
Child widgets with an `objectName` in Qt Designer are automatically attached as attributes:

```python
self.ui.submit_btn.clicked.connect(self.on_submit)
```

### 3. Multiple Action Button Binder (`mybutton`)

```python
from qtarrow.loadui import mybutton

def save_to_db(filename):
    print(f"Saving to {filename}...")

def show_success_msg():
    print("Action completed successfully!")

def clear_form():
    print("Clearing fields...")

mybutton(
    self.ui.save_btn,
    (save_to_db, "data.json"),
    (show_success_msg,),
    (clear_form,)
)
```

---

## Features
- **Dynamic UI Loading:** Load `.ui` files dynamically using `QUiLoader`.
- **Automatic Widget Attachment:** Direct access to child widgets via `objectName`.
- **`mybutton` Event Binder:** Clean tuple-style execution of multiple actions on a single click.
- **Developer Ergonomics:** Simplified `run_app` helper for `QApplication` initialization.

---

## License & Commercial Use

`QtArrow` is distributed under a **Tiered Functional Source License**:

- **Free Tier:** Free for open-source projects, educational use, personal projects, freelancers, and small businesses earning **under $50,000 USD/year** (or < 5 employees).
- **Commercial Tier:** Enterprise entities or developers earning **$50,000 USD/year or more** require a paid Commercial License for production use.

For commercial licensing, enterprise support, or custom software integration inquiries, please contact:
- **Author:** Albiemer R. Porte
- **Email:** *albiemerporte@gmail.com*
