Adding the Frame modularity
This commit is contained in:
parent
05a9b2f497
commit
cb1aeb6183
1 changed files with 31 additions and 25 deletions
56
main.py
56
main.py
|
@ -20,35 +20,49 @@ class GesMag:
|
|||
print("Lancement de l'interface de gestion d'une caisse d'un magasin...")
|
||||
self.font = ("Comfortaa", 14) # Police par défaut
|
||||
Utilisateurs().creationTable() # On créer la base de donnée si elle n'existe pas déjà
|
||||
self._login()
|
||||
self.parent = Tk() # On créer notre fenêtre principale
|
||||
|
||||
self._interfaceConnexion() # On créer la variable `self.f` qui est la frame a affiché
|
||||
self.f.grid() # On affiche la frame
|
||||
|
||||
self.parent.mainloop() # On affiche la fenêtre
|
||||
|
||||
def connexion(self, utilisateur: str, motDePasse: str):
|
||||
"""Gère la connexion aux différentes interfaces de l'application."""
|
||||
# Vérification nom d'utilisateur / mot de passe correctement entré
|
||||
if len(utilisateur) == 0 or len(motDePasse) == 0 or len(motDePasse) < 8:
|
||||
messagebox.showerror("Erreur", "Utilisateur ou mot de passe incorrect.")
|
||||
return
|
||||
|
||||
# Redirection vers la bonne interface
|
||||
if Utilisateurs().verificationIdentifiants(utilisateur, motDePasse):
|
||||
print("Bienvenue mon pote")
|
||||
else:
|
||||
print(f"Bah nan frérot c'est pas bon, ça c'est la liste des utilisateurs : {Utilisateurs().listUtilisateurs()}")
|
||||
|
||||
def _login(self):
|
||||
def _interfaceConnexion(self):
|
||||
"""Affiche la fenêtre de connexion."""
|
||||
global mdpVisible
|
||||
# Paramètres de la fenêtre
|
||||
fenetre = Tk()
|
||||
taille = (400, 600)
|
||||
dimensionsFenetre(fenetre, taille)
|
||||
fenetre.title("Fenêtre de connexion")
|
||||
dimensionsFenetre(self.parent, (400, 600))
|
||||
self.parent.title("Fenêtre de connexion")
|
||||
|
||||
# Instanciation de la Frame, on va donc ajouter tout nos widgets à cet Frame
|
||||
self.f = Frame(self.parent)
|
||||
|
||||
# Affichage des labels et boutons
|
||||
send = lambda _ = None: self.connexion(utilisateur.get(), motDpasse.get()) # lambda pour envoyer les informations entrés dans le formulaire
|
||||
ecart = 80 # Ecart pour avoir un affichage centré (taille[0] / 4 - 20 = 80)
|
||||
Label().grid(row=0, pady=50) # utilisé pour du padding (meilleur affichage)
|
||||
tentativeDeConnexion = lambda _ = None: self.connexion(utilisateur.get(), motDpasse.get()) # lambda pour envoyer les informations entrés dans le formulaire
|
||||
ecart = 80 # Ecart pour avoir un affichage centré
|
||||
Label(self.f).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)
|
||||
utilisateur = Entry(font=self.font, width=18)
|
||||
Label(self.f, text="Utilisateur", font=self.font).grid(column=0, row=1, columnspan=2, padx=ecart - 20, pady=20, sticky=W)
|
||||
utilisateur = Entry(self.f, font=self.font, width=18)
|
||||
utilisateur.grid(column=1, row=2, columnspan=2, padx=ecart)
|
||||
|
||||
Label(self.f, text="Mot de passe", font=self.font).grid(column=0, row=3, columnspan=2, padx=ecart - 20, pady=20, sticky=W)
|
||||
motDpasse = Entry(self.f, font=self.font, show='⁎', width=18)
|
||||
motDpasse.grid(column=1, row=4, columnspan=2, padx=ecart)
|
||||
motDpasse.bind("<Return>", tentativeDeConnexion)
|
||||
|
||||
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
|
||||
|
@ -61,25 +75,17 @@ class GesMag:
|
|||
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)
|
||||
motDpasse = Entry(font=self.font, show='⁎', width=18)
|
||||
motDpasse.grid(column=1, row=4, columnspan=2, padx=ecart)
|
||||
motDpasse.bind("<Return>", send)
|
||||
|
||||
bouttonAffichageMDP = Button(text="👁", command=lambda: __afficherMDP(self))
|
||||
bouttonAffichageMDP = Button(self.f, 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(self.f, text="Se connecter", font=self.font, command=tentativeDeConnexion)
|
||||
bouton.grid(column=0, row=5, columnspan=3, padx=ecart, pady=20)
|
||||
bouton.bind("<Return>", send)
|
||||
bouton.bind("<Return>", tentativeDeConnexion)
|
||||
|
||||
fenetre.mainloop() # Affichage de la fenêtre
|
||||
Button(self.f, text="Quitter", command=self.f.destroy).grid()
|
||||
|
||||
if __name__ == "__main__":
|
||||
"""
|
||||
"Application "GesMag" pour le module de Programmation d'interfaces (2021-2022)
|
||||
KENNEL Anri (20010664) - L2A
|
||||
"""
|
||||
""""Application "GesMag" pour le module de Programmation d'interfaces (2021-2022)"""
|
||||
print("-- Compte par défaut --\nNom d'utilisateur: admin\nMot de passe: P@ssword\n")
|
||||
GesMag().demarrer()
|
||||
|
|
Reference in a new issue