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()