fichiers .ui suivent le format XML : on peut donc afficher leur contenu dans un éditeur
texte ou XML, voire les modifier à la main (ce n'est toutefois pas la manière normale
de procéder).
Un fichier .ui écrit par Qt Designer est donc juste une description statique et
déclarative de tous les détails d'une fenêtre. L'isolation par rapport au langage de
programmation cible est complète : on peut noter d'ailleurs que le même fichier .ui
peut être utilisé aussi bien pour un développement PyQt que pour un développement
natif Qt en C++.
Mais comment ces fichiers .ui vont-ils en définitive s'intégrer dans nos programmes
Python ? Il existe deux techniques principales : la génération de code Python et le
chargement dynamique de l'.ui. Ces techniques, qui comportent chacune des variantes,
seront détaillées un peu plus loin, à la Section 3, Génération du code.
Signalons, enfin, que Qt Designer est ouvert aux extensions (ou plugins) : ce sont des
widgets spécialisés qui peuvent être ajoutés à la Boîte de widgets de Qt Designer. Ils
permettent notamment de factoriser dans des super-widgets des éléments d'interface
récurrents, composés de plusieurs widgets en interaction [4] . Ces extensions peuvent être
développées par tout un chacun… à la condition d'avoir une bonne expérience de Qt et
du développement de composants. Ils sont classiquement programmés en C++, mais
PyQt fournit tout ce qu'il faut pour le faire en Python. Nous n'aborderons toutefois pas
ici ce sujet destiné à un usage avancé.
Tout ce qui précède est certes un peu abstrait mais, rassurez-vous, ces points vont être
détaillés concrètement sur l'exemple de notre application BiblioApp. Plus précisément,
dans les sections qui suivent, nous allons décrire les grandes étapes d'un
développement en PyQt basé sur Qt Designer :
1. construire la fenêtre principale dans Qt Designer ;
2. générer le code Python correspondant ;
3. programmer l'application, en introduisant au passage les notions de modèle et vue.
Note > Dans ce qui suit, nous repartirons du projet eric6 BiblioApp créé au chapitre
précédent ; le fichier start_app.py (programme principal) restera inchangé ; quant
au fichier main_window_biblio.py, il va être complètement réécrit pour
implémenter l'application conçue avec Qt Designer. Au besoin, vous pouvez bien
entendu créer un nouveau projet eric6 et copier les quelques lignes de
start_app.py.
87
Précédent

- 88/494

Suivant