Articles

Développer une application fenêtrée en langage Python.

Image
Ce blog décrit les principes du développement d'une application fenétrée en utilisant les objets de la bibliothèque WinLib. Cette bibliothèque s'appuie sur les modules TKinter et PIL de Python. Elle offre plusieurs classes de base pour automatiser ce qui est commun à toutes les applications. Ce qui permet d'éviter de parcourir les documentations  fastidieuses de TkInter et arriver rapidement à un résultat opérationnel. L'application développée suit le patron de conception Open/Save, comme les applications standars de Microsoft Word ou Excel. Cet article rassemble les liens vers les autres articles du blog. C'est en quelque sorte la table des matières du blog. Il y a deux sortes d'articles : des articles formalisés sous forme de tutoriels destinnés à apprendre l'usage de la bibliothèque WilLib, et des articles techniques donnant une description exhaustive de chaque classes de la bibliothèque avec des exemples. Utilisation des modules de la bibliothèq...

Gestion des menus

Image
La classe Application fournit une référence sur le menu TkInter via l'attribut self.menu . Cet attribut est une instance de la classe tk.Menu . De ce fait, la modification ou l'extension du menu peut être effectuée par programmation Python, via les primitives de TkInter. Cependant, les menus d'une application fenêtrée sont essenciellement contitués de texte, et donc soumis potentiellement à une localisation dans une langue ou dans une autre. C'est pourquoi nous avons pris le parti d'embarquer la structure des menus dans le fichier de localisation. Et de fournir une méthode self.parseMenu() qui analyse le fichier de localisation pour créer les instances Python de la barre de menu. Fichier de localisation Comme indiqué dans l'article sur la localisation des applications , le fichier de localisation est un fichier structuré en JSON et les élements constituant la barre de menus se trouve dans la rubrique "menu". Au v...

Localisation de l'application

Image
Comme vu dans l'article traitant de l'usage de la classe Application , un paramètre déterminant à passer au constructeur de cette classe est le paramètre de localisation. Par défaut, ce paramètre a la valeur 'en' (pour lnague anglaise). Mais on peut l'utiliser pour d'autres langues comme 'fr' pour le français. Mais de quoi s'agit-il ? L'un des problèmes apparu avec le développement des applications fenêtrées et de leur diffusion par Internet sur le continent européen et ailleurs, c'est leur traduction dans le language de l'utilisateur. Des expressions dans le langage du développeurs telles que icônes et chaines de caractères se trouvent dissiminées un peu partout dans la programmation. Cela oblige à une revue détaillée de tout le code pour traduire ces expressions. Ce qui peut entrainer des décalages d'affichage puisque que le texte de chaque langue n'occupe pas exactement le même espace. Pour régler ce problème, Wi...

Classe BarSeparator

Image
Module : WinLib.Bars Héritée de : Widget Version : 1.0 - 2024 Classes dérivées : Cette classe définit un widget pour afficher un séparateur dans la barre. Il s'agit d'un simple espace dont la largeur par défaut est de 20 pixels. Cette classe peut être dérivée pour afficher un séparateur plus sophistiqué. Méthodes publiques : self.__init__(self, appli, bar, width=20, **kwargs) Cette méthode est le constructeur de la classe. Paramètre Type Signification Défaut appli WinLib.Application Référence de l'application propriétaire de la barre. bar WinLib.StatusBar Barre de status parente. width ImageTk.PhotoImage Image affichée comme label. 20 kwargs dictionnaire Liste de paramètres supplémentaire de la classe tk.Frame de TkInter. bar.addBarItem('tool1-1', ToolBarItem(self, bar, image=self.resources['tool1-1.png'], command=self.on_action1_1)) bar.addBarItem('too...

Classe StatusBarItem

Image
Module : WinLib.Bars Héritée de : Widget Version : 1.0 - 2024 Classes dérivées : Cette classe définit un widget pour afficher un status dans la barre de status. Cette classe fonctionne comme le widget tk.Label pour lequel on peut qualifier le status alternativement par une image ou un texte. Attributs d'instance Attribut Type Signification self.value String Valeur du status. Méthodes publiques : self.__init__(self, appli, bar, text=None, image=None, value="000000", **kwargs) Cette méthode est le constructeur de la classe. Paramètre Type Signification Défaut appli WinLib.Application Référence de l'application propriétaire de la barre. bar WinLib.StatusBar Barre de status parente. text String Texte affiché comme label. None image ImageTk.PhotoImage Image affichée comme label. None value String Texte exprimant la valeur du status. "000000"...

Classe StatusBar

Image
Module : WinLib.Bars Héritée de : Bar Version : 1.0 - 2024 Classes dérivées : Cette classe définit le fonctionnement d'une barre de status. La barre d'outil s'affiche en bas de la fenêtre principale de l'application. Elle permet d'afficher des données comme la position, la taille des objets métier en temps réel. Méthodes publiques self.__init__(self, appli, parent, **kwargs) Ce méthode est le constructeur de la classe. Paramètre Type Signification Défaut application WinLib.Application Référence de l'application propriétaire de la barre. parent tk.Frame Fenêtre parente de la barre. kwargs dictionnaire Liste de paramètres supplémentaire de la classe tk.Frame de TkInter. self.addBarItem(self, name, item) Lorsque les items sont instanciés, TkInter les rend déjà visibles. Pour qu'ils soient gérés par le dictionnaire, ils doivent être ajoutés par l'invocation d...

Classe ToolBarItem

Image
Module : WinLib.Bars Héritée de : Widget Version : 1.0 - 2024 Classes dérivées : Cette classe définit un widget pour afficher un bouton dans la barre d'outil. Cette classe fonctionne comme le widget tk.Button de tkInter pour lequel on peut qualifier le status alternativement par une image ou un texte. Mais, ici, on privilégie l'image. Méthodes publiques : self.__init__(self, appli, bar, image, command, **kwargs) Cette méthode est le constructeur de la classe. Paramètre Type Signification Défaut appli WinLib.Application Référence de l'application propriétaire de la barre. bar WinLib.ToolBar Barre d'outils contenant les boutons. image ImageTk.PhotoImage Image affichée sur le bouton. command Method Méthode exécutée lorsque l'utilisateur clique le bouton. kwargs dictionnaire Liste de paramètres supplémentaire de la classe tk.Frame de TkInter. bar.addBarItem(...