Ajout boutton pour afficher et cacher le mot de passe
This commit is contained in:
parent
93a7b112ae
commit
569823350a
1 changed files with 24 additions and 9 deletions
33
main.py
33
main.py
|
@ -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()
|
||||||
|
|
Reference in a new issue