Adding the Frame modularity

This commit is contained in:
Mylloon 2021-11-19 00:47:01 +01:00
parent 05a9b2f497
commit cb1aeb6183

56
main.py
View file

@ -20,35 +20,49 @@ class GesMag:
print("Lancement de l'interface de gestion d'une caisse d'un magasin...") print("Lancement de l'interface de gestion d'une caisse d'un magasin...")
self.font = ("Comfortaa", 14) # Police par défaut 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à 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): 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: if len(utilisateur) == 0 or len(motDePasse) == 0 or len(motDePasse) < 8:
messagebox.showerror("Erreur", "Utilisateur ou mot de passe incorrect.") messagebox.showerror("Erreur", "Utilisateur ou mot de passe incorrect.")
return return
# Redirection vers la bonne interface
if Utilisateurs().verificationIdentifiants(utilisateur, motDePasse): if Utilisateurs().verificationIdentifiants(utilisateur, motDePasse):
print("Bienvenue mon pote") print("Bienvenue mon pote")
else: else:
print(f"Bah nan frérot c'est pas bon, ça c'est la liste des utilisateurs : {Utilisateurs().listUtilisateurs()}") 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.""" """Affiche la fenêtre de connexion."""
global mdpVisible
# Paramètres de la fenêtre # Paramètres de la fenêtre
fenetre = Tk() dimensionsFenetre(self.parent, (400, 600))
taille = (400, 600) self.parent.title("Fenêtre de connexion")
dimensionsFenetre(fenetre, taille)
fenetre.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 # Affichage des labels et boutons
send = lambda _ = None: self.connexion(utilisateur.get(), motDpasse.get()) # lambda pour envoyer les informations entrés dans le formulaire 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é (taille[0] / 4 - 20 = 80) ecart = 80 # Ecart pour avoir un affichage centré
Label().grid(row=0, pady=50) # utilisé pour du padding (meilleur affichage) 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) Label(self.f, 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) utilisateur = Entry(self.f, 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)
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): def __afficherMDP(self):
"""Permet de gérer l'affichage du mot de passe dans le champs sur la page de connexion.""" """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 if self.mdpVisible == False: # si mot de passe caché, alors on l'affiche
@ -61,25 +75,17 @@ class GesMag:
motDpasse.config(show='') motDpasse.config(show='')
bouttonAffichageMDP.config(font=("Arial", 10)) 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) bouttonAffichageMDP = Button(self.f, text='👁', command=lambda: __afficherMDP(self))
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.grid(column=2, row=4, columnspan=2) bouttonAffichageMDP.grid(column=2, row=4, columnspan=2)
self.mdpVisible = False 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.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__": 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
"""
print("-- Compte par défaut --\nNom d'utilisateur: admin\nMot de passe: P@ssword\n") print("-- Compte par défaut --\nNom d'utilisateur: admin\nMot de passe: P@ssword\n")
GesMag().demarrer() GesMag().demarrer()