162 lines
5.6 KiB
Markdown
162 lines
5.6 KiB
Markdown
# 🚀 Python PyQt6 Application Template
|
||
|
||
Bienvenue ! Ce projet est **bien plus qu'un simple template** : c'est une boîte à outils moderne pour créer rapidement des applications desktop Python élégantes, robustes et évolutives.
|
||
Vous voulez coder, personnaliser, traduire, mettre à jour, distribuer ? Tout est déjà prêt !
|
||
|
||
---
|
||
|
||
## ✨ Fonctionnalités clés
|
||
|
||
- **Interface moderne (PyQt6)** : Responsive, stylée, et facile à personnaliser.
|
||
- **Thèmes dynamiques** : Passez du clair au sombre en un clic, ou créez le vôtre !
|
||
- **Multi-langues** : Français, anglais... et ajoutez-en autant que vous voulez.
|
||
- **Paramètres utilisateurs** : Tout est sauvegardé (thème, langue, taille de fenêtre...).
|
||
- **Architecture modulaire** : Des managers pour chaque besoin, tout est organisé.
|
||
- **Notifications automatiques** : Les widgets s'adaptent instantanément aux changements.
|
||
- **Barre d’onglets flexible** : Ajoutez vos fenêtres où vous voulez, comme vous voulez.
|
||
- **Système de suggestion** : Vos utilisateurs peuvent vous écrire directement depuis l’app.
|
||
- **Mise à jour automatique** : Téléchargez la dernière version sans effort, avec barre de progression !
|
||
- **Build & environnement** : Scripts pour tout automatiser, sur Windows, Linux, macOS.
|
||
|
||
---
|
||
|
||
## 🗂️ Structure du projet
|
||
|
||
```
|
||
Template/
|
||
├── app/
|
||
│ ├── core/ # Managers (thème, langue, update, etc.)
|
||
│ ├── ui/
|
||
│ │ ├── widgets/ # Onglets, loading bar, etc.
|
||
│ │ └── windows/ # Paramètres, suggestion...
|
||
│ └── utils/ # Fonctions utilitaires
|
||
├── data/
|
||
│ ├── assets/ # Icônes, images
|
||
│ ├── lang/ # Traductions
|
||
│ ├── themes/ # Thèmes
|
||
│ └── others/ # Autres
|
||
├── tools/ # Scripts build/dev
|
||
├── config.json # Config principale
|
||
├── requirements.txt # Dépendances
|
||
├── BUILD.spec # PyInstaller
|
||
└── main.py # Point d’entrée
|
||
```
|
||
|
||
---
|
||
|
||
## ⚡ Démarrage Express
|
||
|
||
1. **Configurez `config.json`**
|
||
(nom, version, OS, architecture, icône, dépôt git...)
|
||
|
||
2. **Copiez `.env.example` → `.env` et configurez les variables requises**
|
||
- Depuis la racine du projet :
|
||
- Windows (PowerShell / cmd) : copy .env.example .env
|
||
- Linux / macOS : cp .env.example .env
|
||
- Au minimum, renseignez dans `.env` :
|
||
- PYTHON_PATH : chemin absolu vers votre exécutable Python (utilisé par tools/open.bat)
|
||
- les identifiants email si vous comptez utiliser l'envoi de suggestions (email + mot de passe / mot de passe d'application)
|
||
- Remarque : l'outil `tools/open.bat` s'appuie sur PYTHON_PATH ; sans cette variable, l'ouverture/initialisation de l'environnement échouera.
|
||
|
||
3. **Lancez le dev**
|
||
- Windows : tools\open.bat (nécessite PYTHON_PATH dans `.env`)
|
||
- Linux : tools/open.sh (si présent / exécutable)
|
||
- macOS : tools/open.command (si présent / exécutable)
|
||
- Exécutez depuis leur fichier parent pour que les chemins relatifs fonctionnent correctement.
|
||
|
||
4. **Build en un clic**
|
||
- Windows : tools\build.bat
|
||
- Linux : tools/build.sh
|
||
- macOS : tools/build.command
|
||
- Ces scripts supposent que `.env` est configuré et que les outils requis (pyinstaller, etc.) sont installés.
|
||
|
||
---
|
||
|
||
## 🎨 Thèmes & 🌍 Langues
|
||
|
||
- **Thèmes** : Ajoutez vos fichiers dans `data/themes/` (JSON).
|
||
Changez les couleurs, créez votre ambiance !
|
||
- **Langues** : Ajoutez vos fichiers dans `data/lang/` (JSON).
|
||
Traduisez tout, c’est instantané.
|
||
|
||
---
|
||
|
||
## 🧩 Managers & Architecture
|
||
|
||
- **MainManager** : Le chef d’orchestre.
|
||
- **SettingsManager** : Les préférences utilisateur.
|
||
- **ThemeManager** : Les couleurs et le style.
|
||
- **LanguageManager** : Les textes traduits.
|
||
- **AlertManager** : Les messages, confirmations, erreurs.
|
||
- **UpdateManager** : Les mises à jour automatiques.
|
||
- **ObserverManager** : Les notifications internes.
|
||
|
||
---
|
||
|
||
## 🔄 Mise à jour automatique
|
||
|
||
- Vérifie la dernière version sur le dépôt Git à chaque démarrage.
|
||
- Propose la mise à jour si disponible.
|
||
- Télécharge le bon fichier selon votre OS/architecture.
|
||
- Affiche une barre de progression stylée.
|
||
- Lance la nouvelle version automatiquement !
|
||
|
||
---
|
||
|
||
## 💡 Suggestions & Feedback
|
||
|
||
- Fenêtre dédiée pour envoyer vos idées ou questions par email.
|
||
- Sécurisé via `.env`.
|
||
- Gestion des erreurs/succès avec AlertManager.
|
||
|
||
---
|
||
|
||
## 🛠️ Ajouter vos fenêtres & widgets
|
||
|
||
- Créez une classe héritant de `QWidget`.
|
||
- Ajoutez-la dans la barre d’onglets (`TabsWidget`).
|
||
- Abonnez-vous aux notifications pour la langue/le thème.
|
||
|
||
---
|
||
|
||
## 📦 Dépendances
|
||
|
||
- **Python 3.10+ recommandé** (compatibilité testée avec 3.10/3.11).
|
||
- **PyQt6** : GUI moderne.
|
||
- **pyinstaller** : Build d’exécutables.
|
||
- **python-dotenv** : Variables d’environnement.
|
||
- **requests** : Requêtes HTTP (update).
|
||
|
||
---
|
||
|
||
## 🔒 Sécurité
|
||
|
||
- **Ne versionnez jamais `.env`** (déjà dans `.gitignore`).
|
||
- Utilisez un mot de passe d’application pour Gmail.
|
||
|
||
---
|
||
|
||
## 📝 Licence
|
||
|
||
Attribution License — voir le fichier local [`LICENSE`](https://gitea.louismazin.ovh/LouisMazin/PythonApplicationTemplate/src/branch/main/LICENSE) pour le texte complet.
|
||
Toute utilisation ou distribution doit inclure une attribution visible à l'auteur : LouisMazin.
|
||
|
||
---
|
||
|
||
## 🤝 Contribution
|
||
|
||
1. Forkez le dépôt
|
||
2. Créez une branche
|
||
3. Proposez vos modifications via pull request
|
||
|
||
---
|
||
|
||
## 🆘 Support
|
||
|
||
- Ouvrez une issue sur le dépôt
|
||
- Précisez votre OS, version Python, logs d’erreur
|
||
|
||
---
|
||
|
||
**Ce template est fait pour vous faire gagner du temps et coder avec plaisir !
|
||
Testez-le, améliorez-le, partagez-le 🚀** |