Messagebox tkinter

Mes messages ne s affichent pas

Le problème exposé dans ce sujet a été résolu.

Bonsoir,

Je travaille sur un projet pour le bac, et je suis en train de mettre au point une page de connexion avec tkinter. Je souhaite donc ajouter des messages d’erreurs ou d’infos mais aucun d’eux s’affichent :( J’ai revu le programme plusieurs fois sans trouver l’erreur. Je vous l’envoie ci-dessous. J’espere que vous pourrez m’aider :)

from tkinter import *
from tkinter import messagebox
from PIL import *

class Login_System:
    def __init__(self, root):
        self.window=window
        self.window.title("Login System")
        self.window.geometry('1350x700+0+0')
        self.window.configure(bg="dark blue")

        #
        self.uname=StringVar()
        self.pass_=StringVar()

        #
        title = Label(self.window, text="Login System", font=("times new roman", 60, "bold"), bg="yellow", fg="red", border=10, relief=RAISED)
        title.place(x=0, y=0, relwidth=1)


        Login_Frame=Frame(self.window, bg="white")
        Login_Frame.place(x=400, y=150)

        Utilabel=Label(Login_Frame, text="Se Connecter", bd=0, font=("times new roman", 40, "bold"), bg="green", fg="black")
        Utilabel.grid(row=0, columnspan=2, pady=20)

        Userlabel=Label(Login_Frame, text="Nom d'Utilisateur", compound=LEFT, font=("times new roman", 20, "bold"))
        Userlabel.grid(row=1, column=0, padx=20, pady=10)
        txtUser=Entry(Login_Frame, bd="5", textvariable=self.uname, relief=GROOVE, font= 15)
        txtUser.grid(row=1, column=1, padx=20)

        MDPlabel=Label(Login_Frame, text="Mot De Passe", compound=LEFT, font=("times new roman", 20, "bold"))
        MDPlabel.grid(row=2, column=0, padx=20, pady=10)
        txtMDP=Entry(Login_Frame, bd="5", relief=GROOVE, textvariable=self.pass_, font= 15)
        txtMDP.grid(row=2, column=1, padx=20)

        btn_login=Button(Login_Frame, text="Valider", width=15, font=("times new roman", 14, "bold"), bg="yellow", fg="red")
        btn_login.grid(row=3, column=1, pady=10)

    def valider(self):
        if self.uname.get()== "" or self.pass_.get()== "":
            messagebox.showerror(title="Erreur",text="Veuillez saisir tout les champs !")
        elif self.uname.get()== "LoseWeight" or self.pass_.get()== "Projet":
            messagebox.showinfo(title="Bravo", text="Welcome {self.uname.get}()")
        else:
            messagebox.showinfo(title="Erreur",text="Identifiant ou mot de passe incorrect !")


window = Tk()
obj=Login_System(window)



window.mainloop()

Le paramètre pour les messages box est message et pas text qui a un autre effet. On peut voir ça dans la documentation de tkinter.

    def valider(self):
        print(self)
        if self.uname.get()== "" or self.pass_.get()== "":
            messagebox.showerror(title="Erreur",message="Veuillez saisir tous les champs !")
        elif self.uname.get()== "LoseWeight" or self.pass_.get()== "Projet":
            messagebox.showinfo(title="Bravo", message="Welcome {self.uname.get}()")
        else:
            messagebox.showinfo(title="Erreur",message="Identifiant ou mot de passe incorrect !")

J’ai simplement remplacer le nom du paramètre. text est remplacé par message.

Aussi, ton bouton n’a pas la commande qui permet d’appeler la méthode valider.

        btn_login=Button(Login_Frame, text="Valider", width=15, font=("times new roman", 14, "bold"), bg="yellow", fg="red", command=self.valider)

Voilà, ça devrait marcher. J’ai rajouté command=self.valider pour appeler la méthode valider sur l’objet en cours.

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte