EzQt-Widgets


NameEzQt-Widgets JSON
Version 2.2.3.post3 PyPI version JSON
download
home_pageNone
SummaryUne collection de widgets Qt personnalisés et réutilisables pour PySide6. Fournit des composants graphiques avancés, réutilisables et stylés pour faciliter le développement d'interfaces modernes et ergonomiques.
upload_time2025-07-29 06:08:45
maintainerNone
docs_urlNone
authorNone
requires_python<3.13,>=3.9
licenseMIT
keywords qt pyside6 widgets gui interface components ui desktop
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # 🎨 EzQt Widgets

[![Repository](https://img.shields.io/badge/Repository-GitHub-blue?style=for-the-badge&logo=github)](https://github.com/neuraaak/ezqt_widgets)
[![PyPI](https://img.shields.io/badge/PyPI-ezqt_widgets-green?style=for-the-badge&logo=pypi)](https://pypi.org/project/EzQt-Widgets/)
[![Tests](https://img.shields.io/badge/Tests-254%2F262%20passing-green?style=for-the-badge&logo=pytest)](https://github.com/neuraaak/ezqt_widgets/actions)

A collection of custom and reusable Qt widgets for PySide6, designed to simplify the development of modern and intuitive graphical interfaces.

## 📦 **Installation**

```bash
pip install ezqt_widgets
```

## 🚀 **Quick Start**

```python
from PySide6.QtWidgets import QApplication, QVBoxLayout, QWidget
from ezqt_widgets.button import DateButton
from ezqt_widgets.input import PasswordInput
from ezqt_widgets.misc import ToggleSwitch

app = QApplication([])
window = QWidget()
layout = QVBoxLayout()

# Create widgets
date_button = DateButton(placeholder="Select a date")
password_input = PasswordInput(show_strength=True)
toggle = ToggleSwitch(checked=True)

# Add to layout
layout.addWidget(date_button)
layout.addWidget(password_input)
layout.addWidget(toggle)

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

## 📚 **Documentation**

- **[📖 Complete Documentation](docs/README.md)** - Main documentation guide
- **[🎯 Widgets API](docs/api/WIDGETS_DOCUMENTATION.md)** - Complete documentation of all widgets
- **[🎨 Style Guide](docs/api/STYLE_GUIDE.md)** - QSS customization and best practices
- **[🧪 Tests](docs/tests/README.md)** - Test documentation and execution guide
- **[🖥️ CLI Documentation](docs/cli/README.md)** - Command-line interface guide
- **[📋 Changelog](CHANGELOG.md)** - Version history

## 🎯 **Available Widgets**

### 🎛️ **Buttons (3 widgets)**
- **DateButton** - Date picker with integrated calendar
- **IconButton** - Button with icon support and optional text
- **LoaderButton** - Button with integrated loading animation

### ⌨️ **Inputs (4 widgets)**
- **AutoCompleteInput** - Text field with autocompletion
- **PasswordInput** - Password field with strength indicator
- **SearchInput** - Search field with history
- **TabReplaceTextEdit** - Text editor with tab replacement

### 🏷️ **Labels (4 widgets)**
- **ClickableTagLabel** - Clickable tag with toggle state
- **FramedLabel** - Framed label for advanced styling
- **HoverLabel** - Label with hover icon
- **IndicatorLabel** - Status indicator with colored LED

### 🔧 **Misc (5 widgets)**
- **CircularTimer** - Animated circular timer
- **DraggableList** - List with draggable elements
- **OptionSelector** - Option selector with animation
- **ToggleIcon** - Toggleable icon open/closed
- **ToggleSwitch** - Modern toggle switch with animation

## ✨ **Features**

- **✅ PySide6 Compatibility** - All widgets based on PySide6
- **✅ Type Hints** - Complete type annotation support
- **✅ Qt Signals** - Native integration with Qt signal system
- **✅ QSS Styles** - Complete Qt stylesheet support
- **✅ Accessibility** - Accessibility features support
- **✅ Animations** - Smooth and configurable animations
- **✅ Tests** - Complete test suite (~246 tests, ~75% coverage)

## 🧪 **Tests**

### **Quick Execution**
```bash
# Quick verification
python tests/run_tests.py --type unit

# Tests with coverage
python tests/run_tests.py --coverage

# Or use CLI (after pip install -e ".[dev]")
ezqt test --unit
ezqt test --coverage
```

### **Test Documentation**
- **[🚀 Quick Start Guide](docs/tests/QUICK_START_TESTS.md)** - Quick verification
- **[📖 Complete Documentation](docs/tests/TESTS_DOCUMENTATION.md)** - Detailed guide

### **Statistics**
- **Total** : ~246 tests
- **Coverage** : ~75%
- **Status** : 🟢 **OPERATIONAL**

## 🔧 **Development**

### **Project Structure**
```
ezqt_widgets/
├── README.md                    # This file
├── docs/                        # Documentation
│   ├── README.md               # Documentation index
│   ├── api/                    # API documentation
│   │   ├── README.md          # Navigation guide
│   │   ├── WIDGETS_DOCUMENTATION.md # Complete documentation
│   │   └── STYLE_GUIDE.md     # Style guide
│   └── tests/                  # Test documentation
│       ├── README.md          # Navigation guide
│       ├── TESTS_DOCUMENTATION.md # Complete documentation
│       └── QUICK_START_TESTS.md # Quick start guide
├── tests/                       # Tests
│   ├── run_tests.py           # Test execution script
│   ├── conftest.py            # Pytest configuration
│   └── unit/                  # Unit tests
├── ezqt_widgets/               # Source code
└── pyproject.toml              # Project configuration
```

### **Development Installation**
```bash
git clone https://github.com/your-username/ezqt_widgets.git
cd ezqt_widgets
pip install -e ".[dev]"

# Verify CLI installation
ezqt --version
ezqt info
```

## 📄 **License**

This project is licensed under the MIT License. See [LICENSE](LICENSE) for details.

---

**EzQt Widgets** - Simplify the development of modern and intuitive Qt interfaces.

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "EzQt-Widgets",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<3.13,>=3.9",
    "maintainer_email": null,
    "keywords": "qt, pyside6, widgets, gui, interface, components, ui, desktop",
    "author": null,
    "author_email": "Florian Salort <floriansalort@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/58/d7/36e25818c99af862670f790bf435d2e67cd278aae31a26fb5b1dc5f56f07/ezqt_widgets-2.2.3.post3.tar.gz",
    "platform": null,
    "description": "# \ud83c\udfa8 EzQt Widgets\r\n\r\n[![Repository](https://img.shields.io/badge/Repository-GitHub-blue?style=for-the-badge&logo=github)](https://github.com/neuraaak/ezqt_widgets)\r\n[![PyPI](https://img.shields.io/badge/PyPI-ezqt_widgets-green?style=for-the-badge&logo=pypi)](https://pypi.org/project/EzQt-Widgets/)\r\n[![Tests](https://img.shields.io/badge/Tests-254%2F262%20passing-green?style=for-the-badge&logo=pytest)](https://github.com/neuraaak/ezqt_widgets/actions)\r\n\r\nA collection of custom and reusable Qt widgets for PySide6, designed to simplify the development of modern and intuitive graphical interfaces.\r\n\r\n## \ud83d\udce6 **Installation**\r\n\r\n```bash\r\npip install ezqt_widgets\r\n```\r\n\r\n## \ud83d\ude80 **Quick Start**\r\n\r\n```python\r\nfrom PySide6.QtWidgets import QApplication, QVBoxLayout, QWidget\r\nfrom ezqt_widgets.button import DateButton\r\nfrom ezqt_widgets.input import PasswordInput\r\nfrom ezqt_widgets.misc import ToggleSwitch\r\n\r\napp = QApplication([])\r\nwindow = QWidget()\r\nlayout = QVBoxLayout()\r\n\r\n# Create widgets\r\ndate_button = DateButton(placeholder=\"Select a date\")\r\npassword_input = PasswordInput(show_strength=True)\r\ntoggle = ToggleSwitch(checked=True)\r\n\r\n# Add to layout\r\nlayout.addWidget(date_button)\r\nlayout.addWidget(password_input)\r\nlayout.addWidget(toggle)\r\n\r\nwindow.setLayout(layout)\r\nwindow.show()\r\napp.exec()\r\n```\r\n\r\n## \ud83d\udcda **Documentation**\r\n\r\n- **[\ud83d\udcd6 Complete Documentation](docs/README.md)** - Main documentation guide\r\n- **[\ud83c\udfaf Widgets API](docs/api/WIDGETS_DOCUMENTATION.md)** - Complete documentation of all widgets\r\n- **[\ud83c\udfa8 Style Guide](docs/api/STYLE_GUIDE.md)** - QSS customization and best practices\r\n- **[\ud83e\uddea Tests](docs/tests/README.md)** - Test documentation and execution guide\r\n- **[\ud83d\udda5\ufe0f CLI Documentation](docs/cli/README.md)** - Command-line interface guide\r\n- **[\ud83d\udccb Changelog](CHANGELOG.md)** - Version history\r\n\r\n## \ud83c\udfaf **Available Widgets**\r\n\r\n### \ud83c\udf9b\ufe0f **Buttons (3 widgets)**\r\n- **DateButton** - Date picker with integrated calendar\r\n- **IconButton** - Button with icon support and optional text\r\n- **LoaderButton** - Button with integrated loading animation\r\n\r\n### \u2328\ufe0f **Inputs (4 widgets)**\r\n- **AutoCompleteInput** - Text field with autocompletion\r\n- **PasswordInput** - Password field with strength indicator\r\n- **SearchInput** - Search field with history\r\n- **TabReplaceTextEdit** - Text editor with tab replacement\r\n\r\n### \ud83c\udff7\ufe0f **Labels (4 widgets)**\r\n- **ClickableTagLabel** - Clickable tag with toggle state\r\n- **FramedLabel** - Framed label for advanced styling\r\n- **HoverLabel** - Label with hover icon\r\n- **IndicatorLabel** - Status indicator with colored LED\r\n\r\n### \ud83d\udd27 **Misc (5 widgets)**\r\n- **CircularTimer** - Animated circular timer\r\n- **DraggableList** - List with draggable elements\r\n- **OptionSelector** - Option selector with animation\r\n- **ToggleIcon** - Toggleable icon open/closed\r\n- **ToggleSwitch** - Modern toggle switch with animation\r\n\r\n## \u2728 **Features**\r\n\r\n- **\u2705 PySide6 Compatibility** - All widgets based on PySide6\r\n- **\u2705 Type Hints** - Complete type annotation support\r\n- **\u2705 Qt Signals** - Native integration with Qt signal system\r\n- **\u2705 QSS Styles** - Complete Qt stylesheet support\r\n- **\u2705 Accessibility** - Accessibility features support\r\n- **\u2705 Animations** - Smooth and configurable animations\r\n- **\u2705 Tests** - Complete test suite (~246 tests, ~75% coverage)\r\n\r\n## \ud83e\uddea **Tests**\r\n\r\n### **Quick Execution**\r\n```bash\r\n# Quick verification\r\npython tests/run_tests.py --type unit\r\n\r\n# Tests with coverage\r\npython tests/run_tests.py --coverage\r\n\r\n# Or use CLI (after pip install -e \".[dev]\")\r\nezqt test --unit\r\nezqt test --coverage\r\n```\r\n\r\n### **Test Documentation**\r\n- **[\ud83d\ude80 Quick Start Guide](docs/tests/QUICK_START_TESTS.md)** - Quick verification\r\n- **[\ud83d\udcd6 Complete Documentation](docs/tests/TESTS_DOCUMENTATION.md)** - Detailed guide\r\n\r\n### **Statistics**\r\n- **Total** : ~246 tests\r\n- **Coverage** : ~75%\r\n- **Status** : \ud83d\udfe2 **OPERATIONAL**\r\n\r\n## \ud83d\udd27 **Development**\r\n\r\n### **Project Structure**\r\n```\r\nezqt_widgets/\r\n\u251c\u2500\u2500 README.md                    # This file\r\n\u251c\u2500\u2500 docs/                        # Documentation\r\n\u2502   \u251c\u2500\u2500 README.md               # Documentation index\r\n\u2502   \u251c\u2500\u2500 api/                    # API documentation\r\n\u2502   \u2502   \u251c\u2500\u2500 README.md          # Navigation guide\r\n\u2502   \u2502   \u251c\u2500\u2500 WIDGETS_DOCUMENTATION.md # Complete documentation\r\n\u2502   \u2502   \u2514\u2500\u2500 STYLE_GUIDE.md     # Style guide\r\n\u2502   \u2514\u2500\u2500 tests/                  # Test documentation\r\n\u2502       \u251c\u2500\u2500 README.md          # Navigation guide\r\n\u2502       \u251c\u2500\u2500 TESTS_DOCUMENTATION.md # Complete documentation\r\n\u2502       \u2514\u2500\u2500 QUICK_START_TESTS.md # Quick start guide\r\n\u251c\u2500\u2500 tests/                       # Tests\r\n\u2502   \u251c\u2500\u2500 run_tests.py           # Test execution script\r\n\u2502   \u251c\u2500\u2500 conftest.py            # Pytest configuration\r\n\u2502   \u2514\u2500\u2500 unit/                  # Unit tests\r\n\u251c\u2500\u2500 ezqt_widgets/               # Source code\r\n\u2514\u2500\u2500 pyproject.toml              # Project configuration\r\n```\r\n\r\n### **Development Installation**\r\n```bash\r\ngit clone https://github.com/your-username/ezqt_widgets.git\r\ncd ezqt_widgets\r\npip install -e \".[dev]\"\r\n\r\n# Verify CLI installation\r\nezqt --version\r\nezqt info\r\n```\r\n\r\n## \ud83d\udcc4 **License**\r\n\r\nThis project is licensed under the MIT License. See [LICENSE](LICENSE) for details.\r\n\r\n---\r\n\r\n**EzQt Widgets** - Simplify the development of modern and intuitive Qt interfaces.\r\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Une collection de widgets Qt personnalis\u00e9s et r\u00e9utilisables pour PySide6. Fournit des composants graphiques avanc\u00e9s, r\u00e9utilisables et styl\u00e9s pour faciliter le d\u00e9veloppement d'interfaces modernes et ergonomiques.",
    "version": "2.2.3.post3",
    "project_urls": null,
    "split_keywords": [
        "qt",
        " pyside6",
        " widgets",
        " gui",
        " interface",
        " components",
        " ui",
        " desktop"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "f62921d73494a120a91e6c84ce427574c5d996647e49e77b53bd26c5b6c81d7b",
                "md5": "2aa0fc66b9710eecbb3328255fc5be91",
                "sha256": "c1e4787edc2cfebbc6def1bd7aadf7a5e2b5c36efe71f57915addc8b6f46392c"
            },
            "downloads": -1,
            "filename": "ezqt_widgets-2.2.3.post3-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "2aa0fc66b9710eecbb3328255fc5be91",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<3.13,>=3.9",
            "size": 465786,
            "upload_time": "2025-07-29T06:08:43",
            "upload_time_iso_8601": "2025-07-29T06:08:43.492438Z",
            "url": "https://files.pythonhosted.org/packages/f6/29/21d73494a120a91e6c84ce427574c5d996647e49e77b53bd26c5b6c81d7b/ezqt_widgets-2.2.3.post3-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "58d736e25818c99af862670f790bf435d2e67cd278aae31a26fb5b1dc5f56f07",
                "md5": "6635a83237151a40f6a89b9809450204",
                "sha256": "a2782341fb9837d0d2d59886b174128f65b076b2aeba8e6b0fe9e5a68315141a"
            },
            "downloads": -1,
            "filename": "ezqt_widgets-2.2.3.post3.tar.gz",
            "has_sig": false,
            "md5_digest": "6635a83237151a40f6a89b9809450204",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<3.13,>=3.9",
            "size": 510901,
            "upload_time": "2025-07-29T06:08:45",
            "upload_time_iso_8601": "2025-07-29T06:08:45.263547Z",
            "url": "https://files.pythonhosted.org/packages/58/d7/36e25818c99af862670f790bf435d2e67cd278aae31a26fb5b1dc5f56f07/ezqt_widgets-2.2.3.post3.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-29 06:08:45",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "ezqt-widgets"
}
        
Elapsed time: 1.15607s