diff --git a/main.py b/main.py new file mode 100644 index 0000000..fed36d9 --- /dev/null +++ b/main.py @@ -0,0 +1,70 @@ +import tkinter.messagebox as messagebox + +from tkinter import * +from users import Utilisateurs # import de mon fichier pour gérer la base de donnée + +def centrerFenetre(fenetre, taille: tuple): + """Permet de centrer une fenêtre""" + largeur = fenetre.winfo_screenwidth() + hauteur = fenetre.winfo_screenheight() + + x = int(largeur / 2 - taille[0] / 2) + y = int(hauteur / 2 - taille[1] / 2) + + fenetre.geometry(f"+{x}+{y}") + +class GesMag: + """Instancie une fenêtre Tkinter.""" + def demarrer(self) -> None: + """Lance le programme 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() + + def connexion(self, utilisateur: str, motDePasse: str): + if len(utilisateur) == 0 or len(motDePasse) == 0 or len(motDePasse) < 8: + messagebox.showerror("Erreur", "Utilisateur ou mot de passe incorrect.") + return + 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): + """Affiche la fenêtre de connexion.""" + # Paramètres de la fenêtre + fenetre = Tk() + taille = (400, 600) + fenetre.geometry(f"{taille[0]}x{taille[1]}") + centrerFenetre(fenetre, taille) + fenetre.title("Fenêtre de connexion") + + # 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) + + 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.grid(column=1, row=2, columnspan=2, padx=ecart) + + 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.grid(column=1, row=4, columnspan=2, padx=ecart) + motDpasse.bind("", send) + + bouton = Button(text="Se connecter", font=self.font, command=send) + bouton.grid(column=0, row=5, columnspan=3, padx=ecart, pady=20) + bouton.bind("", send) + + fenetre.mainloop() # Affichage de la fenêtre + +if __name__ == "__main__": + """ + "Application "GesMag" pour le module de Programmation d'interfaces (2021-2022) + KENNEL Anri (20010664) - L2A + """ + print("-- Manager --\nNom: Manager\nMot de passe: password123\n") + print("-- Caissier --\nNom: Caissier\nMot de passe: 123password\n") + GesMag().demarrer()