J'ai un code qui demande à l'utilisateur d'entrer un mot qu'il souhaite chiffrer, puis le programme crypte le mot et l'affiche sur une étiquette. Je me demandais pourquoi le code suivant fonctionne:La fonction entry.get() ne changera pas la valeur d'une variable
import tkinter
letters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
encryption_code = 'LFWOAYUISVKMNXPBDCRJTQEGHZ'
letters += letters.lower()
encryption_code += encryption_code.lower()
window = tkinter.Tk()
encryption_code_entry = tkinter.Entry(window)
entry = tkinter.Entry(window)
enc = dict(zip(letters,encryption_code))
string = 'hello world'
encr = "".join([enc.get(ch, ch) for ch in string])
def encrypt():
encrypt_label.pack()
entry.pack()
encrypt_confirm.pack()
encrypt_button.destroy()
def display_encrypt():
display_enc = encr
encrypted_label.pack()
new_message.config(text=str(display_enc))
new_message.pack()
encrypt_confirm = tkinter.Button(window, text="Confirm", command=display_encrypt)
new_message = tkinter.Label(window, text="", font=('Helvetica', 10))
encrypted_label = tkinter.Label(window, text="Your message " + entry.get() + " has been encrypted into the following: ")
encrypt_button = tkinter.Button(window, text="Encrypt", command=encrypt)
encrypt_button.pack()
encrypt_label = tkinter.Label(window, text="Please enter the message you'd like to encrypt", font=('Helvetica', 14))
window.mainloop()
Mais si je change string = 'hello world'
(ce qui est ce que je voudrais faire) à string = entry.get()
rien ne s'affiche on
new_message`. En outre,
encrypted_label = tkinter.Label(window, text="Your message " + entry.get() + "has been encrypted into the following: ")
n'affiche pas ce que l'utilisateur a tapé dans la zone d'entrée, donc je suis presque 100% sûr que je suis abusant de la fonction entry.get()
.
Est-ce que ça marcherait si je mettais juste 'entry.get()' sous le 'def display_encrypt()'? – Inkblot