Ajout boutton pour afficher et cacher le mot de passe

This commit is contained in:
Mylloon 2021-11-19 00:08:48 +01:00
parent 93a7b112ae
commit 569823350a

33
main.py
View file

@ -3,15 +3,15 @@ import tkinter.messagebox as messagebox
from tkinter import * from tkinter import *
from users import Utilisateurs # import de mon fichier pour gérer la base de donnée from users import Utilisateurs # import de mon fichier pour gérer la base de donnée
def centrerFenetre(fenetre, taille: tuple): def dimensionsFenetre(fenetre, taille: tuple):
"""Permet de centrer une fenêtre""" """Permet de définir une fenetre centrer sur l'écran"""
largeur = fenetre.winfo_screenwidth() largeur = fenetre.winfo_screenwidth()
hauteur = fenetre.winfo_screenheight() hauteur = fenetre.winfo_screenheight()
x = int(largeur / 2 - taille[0] / 2) x = int(largeur / 2 - taille[0] / 2)
y = int(hauteur / 2 - taille[1] / 2) y = int(hauteur / 2 - taille[1] / 2)
fenetre.geometry(f"+{x}+{y}") fenetre.geometry(f"{taille[0]}x{taille[1]}+{x}+{y}")
class GesMag: class GesMag:
"""Instancie une fenêtre Tkinter.""" """Instancie une fenêtre Tkinter."""
@ -33,11 +33,11 @@ class GesMag:
def _login(self): def _login(self):
"""Affiche la fenêtre de connexion.""" """Affiche la fenêtre de connexion."""
global mdpVisible
# Paramètres de la fenêtre # Paramètres de la fenêtre
fenetre = Tk() fenetre = Tk()
taille = (400, 600) taille = (400, 600)
fenetre.geometry(f"{taille[0]}x{taille[1]}") dimensionsFenetre(fenetre, taille)
centrerFenetre(fenetre, taille)
fenetre.title("Fenêtre de connexion") fenetre.title("Fenêtre de connexion")
# Affichage des labels et boutons # Affichage des labels et boutons
@ -46,14 +46,30 @@ class GesMag:
Label().grid(row=0, pady=50) # utilisé pour du padding (meilleur affichage) Label().grid(row=0, pady=50) # utilisé pour du padding (meilleur affichage)
Label(text="Utilisateur", font=self.font).grid(column=0, row=1, columnspan=2, padx=ecart - 20, pady=20, sticky=W) Label(text="Utilisateur", font=self.font).grid(column=0, row=1, columnspan=2, padx=ecart - 20, pady=20, sticky=W)
utilisateur = Entry(font=self.font) utilisateur = Entry(font=self.font, width=18)
utilisateur.grid(column=1, row=2, columnspan=2, padx=ecart) utilisateur.grid(column=1, row=2, columnspan=2, padx=ecart)
def __afficherMDP(self):
"""Permet de gérer l'affichage du mot de passe dans le champs sur la page de connexion."""
if self.mdpVisible == False: # si mot de passe caché, alors on l'affiche
self.mdpVisible = True
motDpasse.config(show='')
bouttonAffichageMDP.config(font=("Arial", 10, "overstrike"))
else: # inversement
self.mdpVisible = False
motDpasse.config(show='')
bouttonAffichageMDP.config(font=("Arial", 10))
Label(text="Mot de passe", font=self.font).grid(column=0, row=3, columnspan=2, padx=ecart - 20, pady=20, sticky=W) Label(text="Mot de passe", font=self.font).grid(column=0, row=3, columnspan=2, padx=ecart - 20, pady=20, sticky=W)
motDpasse = Entry(font=self.font, show='*') motDpasse = Entry(font=self.font, show='', width=18)
motDpasse.grid(column=1, row=4, columnspan=2, padx=ecart) motDpasse.grid(column=1, row=4, columnspan=2, padx=ecart)
motDpasse.bind("<Return>", send) motDpasse.bind("<Return>", send)
bouttonAffichageMDP = Button(text="👁", command=lambda: __afficherMDP(self))
bouttonAffichageMDP.grid(column=2, row=4, columnspan=2)
self.mdpVisible = False
bouton = Button(text="Se connecter", font=self.font, command=send) bouton = Button(text="Se connecter", font=self.font, command=send)
bouton.grid(column=0, row=5, columnspan=3, padx=ecart, pady=20) bouton.grid(column=0, row=5, columnspan=3, padx=ecart, pady=20)
bouton.bind("<Return>", send) bouton.bind("<Return>", send)
@ -65,6 +81,5 @@ if __name__ == "__main__":
"Application "GesMag" pour le module de Programmation d'interfaces (2021-2022) "Application "GesMag" pour le module de Programmation d'interfaces (2021-2022)
KENNEL Anri (20010664) - L2A KENNEL Anri (20010664) - L2A
""" """
print("-- Manager --\nNom: Manager\nMot de passe: password123\n") print("-- Compte par défaut --\nNom d'utilisateur: admin\nMot de passe: P@ssword\n")
print("-- Caissier --\nNom: Caissier\nMot de passe: 123password\n")
GesMag().demarrer() GesMag().demarrer()