Je n'arrive pas à faire Entry.get() et récupérer dans un fichier avec tkinter

Fermé
Ploutocratique Messages postés 1 Date d'inscription mardi 7 avril 2020 Statut Membre Dernière intervention 7 avril 2020 - 7 avril 2020 à 15:02
Phil_1857 Messages postés 1883 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 - 7 avril 2020 à 19:16
Voici mon code:
contexte : faire une interface graphique avec tkinter générant un mot de passe et l'écrivant dans un fichier passwords.txt
import string
from random import randint, choice
from tkinter import *


def get_website():#pour pouvoir avoir le site pour lequel j'ai généré le mot de passe
    
    website_entry.pack(fill=X)
    def get_entry():
        with open("passwords.txt", "a+") as password_file:
            
            password_file.write(website_entry.get())
            password_file.write(" : ")
        password_file.close()
        enter_button.pack(fill=X)
    get_entry()


def generate_password():
    password_min = 12
    password_max = 24
    all_chars = string.ascii_letters + string.punctuation + string.digits
    [/contents/64-mots-de-passe password] = "".join(choice(all_chars)for x in range(randint(password_min, password_max)))
    password_entry.delete(0, END)
    password_entry.insert(0, password)
    with open("passwords.txt", "a+") as file_password:
        file_password.write(password + "\n")
    file_password.close()



window = Tk()
window.title("Générateur de mots de passe")
window.geometry("720x420")

window.config(background="#4065A7")

frame = Frame(window, bg='#4065A7')

width = 200
height = 200
image = PhotoImage(file="password.ico").zoom(12).subsample(32)
canvas = Canvas(frame, height=height, width=width, bg='#4065A4', bd=0, highlightthickness=0)
canvas.create_image(width/2, height/2, image=image)
canvas.grid(row=0, column=0, sticky=W)

right_frame = Frame(frame, bg='#5065A4')

label_title = Label(right_frame, text="Générateur de mots de passe", font=("Helvetica", 20), bg='#4065A4', fg='black')
label_title.pack()

password_entry = Entry(right_frame, font=("Helvetica", 20), bg='#4065A4', fg='black')
password_entry.pack(fill=X)

generate_password_button = Button(right_frame, text="Générer le mot de passe", font=("Helvetica", 15), bg='#4065A4', fg='black', command=generate_password)
generate_password_button.pack(fill=X)
enter_button = Button(right_frame, font=("Helvetica", 15), bg="#4065A4",command=get_website, fg="black", text="Valider")
website_entry = Entry(right_frame, font=("Helvetica", 20), bg="#4065A4", fg="black")
website = website_entry.get()

frame.pack(expand=YES)
right_frame.grid(row=0, column=1, sticky=W)

menu_bar = Menu(window)
file_menu = Menu(menu_bar, tearoff=0)
file_menu.add_command(label="Nouveau", command=generate_password)
file_menu.add_command(label="Quitter", command=window.quit)
file_menu.add_command(label="Site Web", command=get_website)
menu_bar.add_cascade(label="Fichier", menu=file_menu)
window.config(menu=menu_bar)

window.mainloop()

Est-ce que vous pouvez me dire ma faute ?
A voir également:

1 réponse

Phil_1857 Messages postés 1883 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 178
Modifié le 7 avril 2020 à 19:16
Bonjour Ploutocratique,

Tu devrais revoir la doc Tkinter … :-)

Sinon:

Les 2 fonctions generate_website et get_password sont appelée à la fois par le menu et par des boutons ?

Pourquoi on pack website_entry seulement dans get_website et pas a la suite de sa création ?

C'est quoi website = website_entry.get() ligne 59 ?

Moi je fait comme çà:

def show_entry():
 print(e1.get())

e1 = Entry(main_win, width = 10)
e1.pack

b1 = Button(main_win, text='Afficher', width = 20, justify = 'left', command=show_entry)
b1.pack
1