EzQt-Widgets


NameEzQt-Widgets JSON
Version 2.1.1 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-27 11:17:51
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

Une collection de widgets Qt personnalisés et réutilisables pour PySide6.

## 📦 **Installation**

```bash
pip install ezqt_widgets
```

## 🚀 **Utilisation Rapide**

```python
from PySide6.QtWidgets import QApplication
from ezqt_widgets.button import IconButton, DateButton, LoaderButton
from ezqt_widgets.label import ClickableTagLabel, FramedLabel, HoverLabel, IndicatorLabel
from ezqt_widgets.input import AutoCompleteInput, SearchInput, PasswordInput
from ezqt_widgets.misc import CircularTimer, OptionSelector, ToggleIcon, ToggleSwitch

app = QApplication([])

# Widgets bouton
icon_btn = IconButton(icon="path/to/icon.png", text="Mon Bouton")
date_btn = DateButton(date="2024-01-01")
loader_btn = LoaderButton(text="Charger...")

# Widgets label
tag_label = ClickableTagLabel(name="Tag Cliquable")
framed_label = FramedLabel(text="Label Encadré")
hover_label = HoverLabel(text="Label avec Hover")
indicator_label = IndicatorLabel(status="online")

# Widgets input
search_input = SearchInput(placeholder="Rechercher...")
password_input = PasswordInput(placeholder="Mot de passe")

# Widgets misc
timer = CircularTimer(duration=60)
toggle_switch = ToggleSwitch(checked=True)

app.exec()
```

## 📚 **Documentation**

- **Documentation complète** : [docs/](docs/)
- **Guide de style** : [docs/STYLE_GUIDE.md](docs/STYLE_GUIDE.md)
- **Changelog** : [docs/CHANGELOG.md](docs/CHANGELOG.md)

## 🧪 **Tests**

### **Exécution des Tests**
```bash
# Tous les tests
python tests/run_tests.py --type unit

# Tests spécifiques
python -m pytest tests/unit/test_button/ -v
python -m pytest tests/unit/test_label/ -v
```

### **Documentation des Tests**
- **Guide rapide** : [docs/QUICK_START_TESTS.md](docs/QUICK_START_TESTS.md)
- **Documentation complète** : [docs/tests/](docs/tests/)

## 📊 **Statistiques des Tests**

- **Widgets Bouton** : 59 tests (56 passent, 3 skipped)
- **Widgets Label** : 70 tests (67 passent, 3 skipped)
- **Widgets Input** : 112 tests (111 passent, 1 skipped)
- **Widgets Misc** : 41 tests ✅
- **Tests de Base** : 3 tests ✅
- **Total** : 262 tests (254 passent, 8 skipped)

## 🎯 **Widgets Disponibles**

### **Boutons**
- `IconButton` - Bouton avec icône personnalisable
- `DateButton` - Sélecteur de date avec calendrier
- `LoaderButton` - Bouton avec états de chargement

### **Labels**
- `ClickableTagLabel` - Tag cliquable avec toggle
- `FramedLabel` - Label avec cadre personnalisable
- `HoverLabel` - Label avec effets au survol
- `IndicatorLabel` - Indicateur de statut avec LED

### **Inputs**
- `AutoCompleteInput` - Champ de saisie avec autocomplétion
- `SearchInput` - Champ de recherche avec historique
- `TabReplaceTextEdit` - Éditeur de texte avec remplacement de tabulations
- `PasswordInput` - Champ de mot de passe avec barre de force

### **Misc**
- `CircularTimer` - Timer circulaire avec animation
- `OptionSelector` - Sélecteur d'options avec interface moderne
- `ToggleIcon` - Icône basculante avec états multiples
- `ToggleSwitch` - Interrupteur moderne avec animation

## 🔧 **Développement**

### **Structure du Projet**
```
ezqt_widgets/
├── README.md              # Ce fichier
├── docs/                  # Documentation
│   ├── README.md         # Index de documentation
│   ├── STYLE_GUIDE.md    # Guide de style
│   ├── CHANGELOG.md      # Historique des versions
│   ├── QUICK_START_TESTS.md # Guide rapide des tests
│   └── tests/            # Documentation des tests
├── tests/                # Tests
│   ├── run_tests.py      # Script d'exécution des tests
│   ├── conftest.py       # Configuration pytest
│   └── unit/             # Tests unitaires
├── ezqt_widgets/         # Code source
└── pyproject.toml        # Configuration du projet
```

### **Installation pour Développement**
```bash
git clone <repository>
cd ezqt_widgets
pip install -e .
pip install -e ".[dev]"
```

## 📄 **Licence**

Ce projet est sous licence MIT. Voir [LICENSE](LICENSE) pour plus de détails.

---

**État des tests :** 🟢 **OPÉRATIONNEL** (254/262 tests passent, 8 skipped)

            

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/fa/2f/ad457fea6b2ba9746e0690a0398c9bfd466263993609d20d9661f1b9823f/ezqt_widgets-2.1.1.tar.gz",
    "platform": null,
    "description": "# \ud83c\udfa8 EzQt_Widgets\r\n\r\nUne collection de widgets Qt personnalis\u00e9s et r\u00e9utilisables pour PySide6.\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 **Utilisation Rapide**\r\n\r\n```python\r\nfrom PySide6.QtWidgets import QApplication\r\nfrom ezqt_widgets.button import IconButton, DateButton, LoaderButton\r\nfrom ezqt_widgets.label import ClickableTagLabel, FramedLabel, HoverLabel, IndicatorLabel\r\nfrom ezqt_widgets.input import AutoCompleteInput, SearchInput, PasswordInput\r\nfrom ezqt_widgets.misc import CircularTimer, OptionSelector, ToggleIcon, ToggleSwitch\r\n\r\napp = QApplication([])\r\n\r\n# Widgets bouton\r\nicon_btn = IconButton(icon=\"path/to/icon.png\", text=\"Mon Bouton\")\r\ndate_btn = DateButton(date=\"2024-01-01\")\r\nloader_btn = LoaderButton(text=\"Charger...\")\r\n\r\n# Widgets label\r\ntag_label = ClickableTagLabel(name=\"Tag Cliquable\")\r\nframed_label = FramedLabel(text=\"Label Encadr\u00e9\")\r\nhover_label = HoverLabel(text=\"Label avec Hover\")\r\nindicator_label = IndicatorLabel(status=\"online\")\r\n\r\n# Widgets input\r\nsearch_input = SearchInput(placeholder=\"Rechercher...\")\r\npassword_input = PasswordInput(placeholder=\"Mot de passe\")\r\n\r\n# Widgets misc\r\ntimer = CircularTimer(duration=60)\r\ntoggle_switch = ToggleSwitch(checked=True)\r\n\r\napp.exec()\r\n```\r\n\r\n## \ud83d\udcda **Documentation**\r\n\r\n- **Documentation compl\u00e8te** : [docs/](docs/)\r\n- **Guide de style** : [docs/STYLE_GUIDE.md](docs/STYLE_GUIDE.md)\r\n- **Changelog** : [docs/CHANGELOG.md](docs/CHANGELOG.md)\r\n\r\n## \ud83e\uddea **Tests**\r\n\r\n### **Ex\u00e9cution des Tests**\r\n```bash\r\n# Tous les tests\r\npython tests/run_tests.py --type unit\r\n\r\n# Tests sp\u00e9cifiques\r\npython -m pytest tests/unit/test_button/ -v\r\npython -m pytest tests/unit/test_label/ -v\r\n```\r\n\r\n### **Documentation des Tests**\r\n- **Guide rapide** : [docs/QUICK_START_TESTS.md](docs/QUICK_START_TESTS.md)\r\n- **Documentation compl\u00e8te** : [docs/tests/](docs/tests/)\r\n\r\n## \ud83d\udcca **Statistiques des Tests**\r\n\r\n- **Widgets Bouton** : 59 tests (56 passent, 3 skipped)\r\n- **Widgets Label** : 70 tests (67 passent, 3 skipped)\r\n- **Widgets Input** : 112 tests (111 passent, 1 skipped)\r\n- **Widgets Misc** : 41 tests \u2705\r\n- **Tests de Base** : 3 tests \u2705\r\n- **Total** : 262 tests (254 passent, 8 skipped)\r\n\r\n## \ud83c\udfaf **Widgets Disponibles**\r\n\r\n### **Boutons**\r\n- `IconButton` - Bouton avec ic\u00f4ne personnalisable\r\n- `DateButton` - S\u00e9lecteur de date avec calendrier\r\n- `LoaderButton` - Bouton avec \u00e9tats de chargement\r\n\r\n### **Labels**\r\n- `ClickableTagLabel` - Tag cliquable avec toggle\r\n- `FramedLabel` - Label avec cadre personnalisable\r\n- `HoverLabel` - Label avec effets au survol\r\n- `IndicatorLabel` - Indicateur de statut avec LED\r\n\r\n### **Inputs**\r\n- `AutoCompleteInput` - Champ de saisie avec autocompl\u00e9tion\r\n- `SearchInput` - Champ de recherche avec historique\r\n- `TabReplaceTextEdit` - \u00c9diteur de texte avec remplacement de tabulations\r\n- `PasswordInput` - Champ de mot de passe avec barre de force\r\n\r\n### **Misc**\r\n- `CircularTimer` - Timer circulaire avec animation\r\n- `OptionSelector` - S\u00e9lecteur d'options avec interface moderne\r\n- `ToggleIcon` - Ic\u00f4ne basculante avec \u00e9tats multiples\r\n- `ToggleSwitch` - Interrupteur moderne avec animation\r\n\r\n## \ud83d\udd27 **D\u00e9veloppement**\r\n\r\n### **Structure du Projet**\r\n```\r\nezqt_widgets/\r\n\u251c\u2500\u2500 README.md              # Ce fichier\r\n\u251c\u2500\u2500 docs/                  # Documentation\r\n\u2502   \u251c\u2500\u2500 README.md         # Index de documentation\r\n\u2502   \u251c\u2500\u2500 STYLE_GUIDE.md    # Guide de style\r\n\u2502   \u251c\u2500\u2500 CHANGELOG.md      # Historique des versions\r\n\u2502   \u251c\u2500\u2500 QUICK_START_TESTS.md # Guide rapide des tests\r\n\u2502   \u2514\u2500\u2500 tests/            # Documentation des tests\r\n\u251c\u2500\u2500 tests/                # Tests\r\n\u2502   \u251c\u2500\u2500 run_tests.py      # Script d'ex\u00e9cution des tests\r\n\u2502   \u251c\u2500\u2500 conftest.py       # Configuration pytest\r\n\u2502   \u2514\u2500\u2500 unit/             # Tests unitaires\r\n\u251c\u2500\u2500 ezqt_widgets/         # Code source\r\n\u2514\u2500\u2500 pyproject.toml        # Configuration du projet\r\n```\r\n\r\n### **Installation pour D\u00e9veloppement**\r\n```bash\r\ngit clone <repository>\r\ncd ezqt_widgets\r\npip install -e .\r\npip install -e \".[dev]\"\r\n```\r\n\r\n## \ud83d\udcc4 **Licence**\r\n\r\nCe projet est sous licence MIT. Voir [LICENSE](LICENSE) pour plus de d\u00e9tails.\r\n\r\n---\r\n\r\n**\u00c9tat des tests :** \ud83d\udfe2 **OP\u00c9RATIONNEL** (254/262 tests passent, 8 skipped)\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.1.1",
    "project_urls": null,
    "split_keywords": [
        "qt",
        " pyside6",
        " widgets",
        " gui",
        " interface",
        " components",
        " ui",
        " desktop"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "cd827bc087bca88d4551cf35df26e18f1261fbe8e00af34e559b719746e4afbd",
                "md5": "9cdbdaf1f389e653d80981772c8a3c19",
                "sha256": "27dc5aee5a1637be1be5b05934184b6c59f8f9ee025bbaba86f5d7163e47e499"
            },
            "downloads": -1,
            "filename": "ezqt_widgets-2.1.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "9cdbdaf1f389e653d80981772c8a3c19",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<3.13,>=3.9",
            "size": 52214,
            "upload_time": "2025-07-27T11:17:49",
            "upload_time_iso_8601": "2025-07-27T11:17:49.647757Z",
            "url": "https://files.pythonhosted.org/packages/cd/82/7bc087bca88d4551cf35df26e18f1261fbe8e00af34e559b719746e4afbd/ezqt_widgets-2.1.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "fa2fad457fea6b2ba9746e0690a0398c9bfd466263993609d20d9661f1b9823f",
                "md5": "2fc2fc02df6aecea9c9a6d1db1f7e16e",
                "sha256": "6b4bd4eb8e3bfcde452782994a7bc30858ca06f161dbf22cbc12e77a793d632e"
            },
            "downloads": -1,
            "filename": "ezqt_widgets-2.1.1.tar.gz",
            "has_sig": false,
            "md5_digest": "2fc2fc02df6aecea9c9a6d1db1f7e16e",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<3.13,>=3.9",
            "size": 74766,
            "upload_time": "2025-07-27T11:17:51",
            "upload_time_iso_8601": "2025-07-27T11:17:51.010133Z",
            "url": "https://files.pythonhosted.org/packages/fa/2f/ad457fea6b2ba9746e0690a0398c9bfd466263993609d20d9661f1b9823f/ezqt_widgets-2.1.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-27 11:17:51",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "ezqt-widgets"
}
        
Elapsed time: 0.66411s