generated from LouisMazin/PythonApplicationTemplate
5.6 KiB
5.6 KiB
🚀 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
-
Configurez
config.json
(nom, version, OS, architecture, icône, dépôt git...) -
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.
- Depuis la racine du projet :
-
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.
- Windows : tools\open.bat (nécessite PYTHON_PATH dans
-
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
pour le texte complet.
Toute utilisation ou distribution doit inclure une attribution visible à l'auteur : LouisMazin.
🤝 Contribution
- Forkez le dépôt
- Créez une branche
- 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 🚀