Programmer une fenêtre de déconnexion en langage Python

Bonjour,

Il y a quelques semaines, j’avais récupéré sur internet une fenêtre de déconnexion fabriquée grâce à la bibliothèque Pygtk. Voici à quoi elle ressemblait :

Bitte ausw_007

Elle possédait toutes les fonctions (« Mise en veille », « Redémarrer », « Éteindre » etc…) mais son design triste comme un jour de pluie ne me satisfaisait point. L’honnêteté m’oblige même à vous dire que je trouvais ça vilain comme tout. Comme cela fait plusieurs mois que je n’ai pas programmé en Python, je me suis dit qu’instancier ma propre fenêtre de déconnexion serait peut-être un bon exercice. Ça me dégourdirait les neurones.

Ni une ni deux, j’ai ouvert mon éditeur de texte et hop! après plusieurs heures de labeur, j’ai obtenu quelque chose qui me contente :

Abmeldungsfenster_009

J’ai déposé le tout sur framagit : https://framagit.org/Ordinosor/logout-window

Le code est ici.

Le cahier des charges

Je m’étais donné trois objectifs :

  1. Détecter la langue du système, (la « locale » comme on dit) et afficher les textes en conséquence.
  2. Remplacer chaque icône par le texte correspondant à la fonction du bouton, à chaque fois que le curseur de la souris survole une des cinq icônes. Effectuer l’opération inverse à chaque fois que le curseur quitte une des cinq icônes.
  3. Centrer la fenêtre au milieu de l’écran.

Détecter la langue du système

  • Importation du module locale,
  • Lignes 62 à 96 :
self._locale = locale.setlocale(locale.LC_ALL, "")[0:2]
  • la variable self._locale stocke les deux premiers caractères de la langue détectée (‘en’, ‘fr’, ‘de’ etc…)
  • Ensuite, j’ai créé une liste de trois listes contenant les traductions des boutons en allemand, en anglais et en français. À l’aide d’une condition if-elif-else, c’est la langue détectée qui sera utilisée.
  • Si la variable self._locale stocke les initiales d’une autre langue (par exemple le patois vendéen), la fenêtre sera en anglais car c’est la langue que j’ai définie par défaut. Vous devez bien vous douter que je ne vais pas m’amuser à traduire cette application dans tous les idiômes de la Terre!

Remplacer chaque icône par le texte correspondant à la fonction du bouton au survol de la souris (et le contraire pour l’opération inverse)

  • Lignes 175 à 194 : J’ai lié les boutons aux événements <‘Enter’> et <‘Leave’>
  • Ligne 48 : J’ai reconfiguré le bouton survolé pour faire disparaitre l’image et la remplacer par le texte. C’est là que j’ai eu un petit problème:
event.widget.config(image="", text=self.button_name...)
  • Comme vous pouvez le constater, il a fallu d’abord que j’affecte une chaîne de caractères vide à l’option image avant de configurer l’option text sinon ça ne fonctionnait pas.

Centrer la fenêtre au milieu de l’écran

  • Lignes 105 à 116: Ça n’a pas été simple. J’ai déniché un bout de script qui fait le boulot mais j’avoue que j’ai du mal à comprendre la formule mathématique. On récupère les dimensions de l’écran  auxquelles on retranche les dimensions requises pour afficher le widget, le tout divisé par deux. J’ai traduit le commentaire en français pour celles et ceux que ça intéresse.

Conclusion

Je suis content de m’être replongé dans le langage Python. Il est clair que le code mérite d’être retravaillé pour le rendre plus concis mais malgré tout, le résultat me donne entière satisfaction, à tel point que depuis ce matin, je n’arrête pas d’éteindre et de rallumer mon ordinateur… Jour… Nuit… Jour… Nuit… Jour… Nuit…

 

Billy-Berclau, une mairie libre!

Rappelez-vous, en juillet 2014 on découvrait un article, dans le n° 84 de Linux Pratique, qui relatait l’expérience de cette commune quant au déploiement progressif de Linux au sein de la Mairie et de ses bâtiments communaux.

billyberclau01
Bandeau supérieur du site de la mairie propulsé par Joomla

Continuer à lire … « Billy-Berclau, une mairie libre! »

JITSI, un logiciel libre de visioconférence

Bonjour,

Aujourd’hui, j’ai envie de vous parler de Jitsi, un logiciel libre de visioconférence qui représente une alternative tout à fait crédible à Google hangouts et Skype puisqu’il offre tous les services proposés par ce dernier. Ce qui m’a tout de suite plu, c’est sa facilité d’utilisation. Pas besoin d’être sorti de Saint-Cyr! Voici la procédure: Continuer à lire … « JITSI, un logiciel libre de visioconférence »

Blolab: le premier fablab du Bénin

Un article du collectif Emmabuntüs

Considérée par les experts internationaux comme l’une des nations les plus stables d’Afrique de par ses institutions constitutionnelle et politique, la République du Bénin étend ses tentacules de paix et de stabilité à d’autres domaines tels que l’éducation, la religion et bien évidemment le numérique. C’est dans ce climat propice au développement du numérique que le BloLab, le laboratoire du « faire » du Bénin a vu le jour.

Continuer à lire … « Blolab: le premier fablab du Bénin »

Openbox : minimalisme et légèreté.

 

Bonjour

C’est en installant Vipper sur mon vieil ordinateur portable que j’ai véritablement découvert Openbox. Certes, j’en avais entendu parler mais sans m’y intéresser plus que ça. Contrairement à Xfce, MATE, GNOME et Consorts, Openbox n’est pas un environnement de bureau mais un simple gestionnaire de fenêtres ce qui explique son extrême légèreté. Sur les conseils d’un posteur, j’ai commencé à éditer le fichier ~/.config/openbox/menu.xml pour créer un menu principal à ma sauce (en bas à gauche). Continuer à lire … « Openbox : minimalisme et légèreté. »

J’ai été mordu par une Viperr.

Bonjour,

Je possède un vieil Acer Aspire 5611 de 2006 qui n’a pas une vie facile puisque je m’en sers pour tester les distributions les plus farfelues. J’ignore combien de fois j’ai pu formater son disque dur. Je pourrais très bien le faire dans une machine virtuelle me direz-vous, au lieu de m’acharner sur ce pauvre bougre qui ne demande qu’à partir à la casse mais je suis un sadique et tant que cet ordinateur possédera ne serait-ce qu’un bit de conscience-machine, je continuerai mes expériences. Continuer à lire … « J’ai été mordu par une Viperr. »

Quelques nouvelles de nos amis de YovoTogo (épisode 3)

Source des images : YovoTogo

Vendredi 20 octobre

Au programme de la journée, visite de trois des 7 salles informatiques installée jusqu’à l’année dernière, nous commençons par la celle du lycée de Bombouaka, puis celle du lycée de Tandjouaré et enfin celle de Nano. Dans l’ensemble le taux de fréquentation et le suivi des matériels est satisfaisant. Des clefs USB d’installations contenant de nouvelles versions du système d’exploitation vont être distribuées aux membres de JUMP Lab’Orione chargé de la maintenance et de la pérennité du projet.

Continuer à lire … « Quelques nouvelles de nos amis de YovoTogo (épisode 3) »