Je test le script sous Windows, comme l'a si bien fait remarqué Sakarov
Annonce
Réduire
Aucune annonce.
débuter une IHM en python
Réduire
X
-
-
Bonsoir,
Je suis tombé sur ce vieux challenge qui m'a donné envie de créer mon premier programme IHM en utilisant tkinter
Code:from Tkinter import * import tkMessageBox def verifAuth(): login = str(entr1.get()) mdp = str(entr2.get()) passFile = open('users.txt') i = 0 for line in passFile.readlines(): if ":" in line: user = line.split(':')[0] Pass = line.split(':')[1].strip(' ').strip('\n') if login == user and mdp == Pass: lbl3.config(text = 'authentification OK', fg ='green') tkMessageBox.showinfo(title='authentification', message="connexion reussie") break elif i >= 8: lbl3.config(text = 'erreur d\'authentification', fg = 'red') tkMessageBox.showinfo(title='authentification', message="login ou mot de passe invalide") else: pass i = i+1 def effacer(): entr1.delete(0, END) entr2.delete(0, END) fen1 = Tk() txt1 = Label(fen1, text = 'Login :') txt2 = Label(fen1, text = 'Password :') lbl3 = Label(fen1) entr1 = Entry(fen1) entr2 = Entry(fen1, show="*") b= Button(text='connexion', command=verifAuth) b1 = Button(text='abandon', command= effacer) b.grid(row =2) b1.grid(row =2, column =2) txt1.grid(row =0) txt2.grid(row =1) lbl3.grid(row =5) entr1.grid(row =0, column =1) entr2.grid(row =1, column =1) fen1.mainloop()
2.png
3.pngFichiers attachésL'esprit à autant besoin de livres qu'une épée de pierre à aiguiser pour conserver son tranchant.
Commentaire
-
Bonjour, quelques remarques:
1) login = str(entr1.get()) -> fonction str inutile, entr1.get() renvoie déjà une chaîne de caractères et donc mdp idem.
2) Combien as-tu de lignes dans ton fichier users.txt ? Plus de 2 ? Dans ce cas je n'ai pas compris ce que tu tentes de faire. Dans l'autre cas, je ne comprend pas comment ton compteur peut arriver à 8 ?
Après pour le reste, c'est de l'aménagement de code, rien de plus.
Commentaire
-
Bonjour,
mon fichier users.txt contient 8 lignes, c'est pour ça que j'ai utilisé un compteur pour qu'il n'affiche qu'une seule fois le messagebox 'error login' une fois qu'il aura parcouru tout le fichier et d'éviter ainsi l'affichage de plusieurs fenêtre en cas d'erreur.
Merci pour ta réponse.Dernière modification par Slayervx, 25 octobre 2014, 14h24.L'esprit à autant besoin de livres qu'une épée de pierre à aiguiser pour conserver son tranchant.
Commentaire
-
Ok je comprend mieux.
Plus simple peut-être
Code:FILE = 'users.txt' with open(FILE, 'r') as f: lines = [line.strip('\n') for line in f.readlines()] for line in lines: user, Pass = line.split(':') if login == user and mdp == Pass: # suite du code
Commentaire
Commentaire