Когда я пытаюсь сгенерировать пароль, даже если вы вводите длину, Python говорит, что переменная lengthstr
пуста.
Это ошибка, которую выдает Python:
Exception in Tkinter callback
Traceback (most recent call last):
File "/usr/lib/python3.6/tkinter/__init__.py", line 1705, in __call__
return self.func(*args)
File "/home/salvatore/Python Projects/Password Saver/Ps.py", line 35, in <lambda>
generatebutton = tk.Button(window, text="Genera", font=("Helvetica", 12, "bold"), bg="#007acc", activebackground="#66c2ff", command=lambda: generate(int(lengthstr)))
ValueError: invalid literal for int() with base 10: ''
Вот мой код:
def generate(length):
return length
chars = "abcdefghijklmnopqrstuvwxyz01234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ!@#$%^&£*()?"
passgen = "".join(choice(chars) for x in range(length))
passwd = tk.Entry(window)
passwd.insert(0, passgen)
passwd.grid(row=5, column=0, sticky="N")
def generatepassword():
generatefunction.destroy()
seepassbutton.destroy()
text.destroy()
textgen = "Genera una Password"
textgen = tk.Label(window, text=textgen, fg="#333333", font=("Helvetica", 32, "bold"))
textgen.grid(row=0, column=0, sticky="N")
length = tk.Entry(window, justify="center")
length.grid(row=2, column=0, pady=10, ipadx=42)
lengthstr = length.get()
print(lengthstr)
textgen = "Inserisci la lunghezza della Password"
textgen = tk.Label(window, text=textgen, fg="#333333", font=("Helvetica", 10))
textgen.grid(row=3, column=0, sticky="N")
generatebutton = tk.Button(window, text="Genera", font=("Helvetica", 12, "bold"), bg="#007acc", activebackground="#66c2ff", command=lambda: generate(int(lengthstr)))
generatebutton.config(relief="flat")
generatebutton.grid(row=4, column=0, pady=6, ipady=1, ipadx=240)