from tkinter import *
from random import *
def generate_password(*args):
global error
global psw_return
try:
error.destroy()
except:
pass
ALL_ASCII = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890!"£$%&/()=?^*+[]ç@°#§;,:.-_<>'
ASCII_WITHOUT_SYMBOLS = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'
psw_list = []
try:
for i in range(int(lenght_entry.get())):
if symbols_var.get() != False:
carachter = choice(ALL_ASCII)
psw_list.append(carachter)
else:
carachter = choice(ASCII_WITHOUT_SYMBOLS)
psw_list.append(carachter)
psw = ''.join(psw_list)
psw_return = Entry()
psw_return.insert(END, psw)
psw_return.place(relx=.315, rely=.7)
except:
try:
psw_return.destroy()
except:
pass
error = Label(text='Error: lenght field may be unfilled or filled with a non-valid character')
error.place(relx=.03, rely=.7)
def fun(*args):
if symbols_var.get():
symbols_check.deselect()
else:
symbols_check.select()
window = Tk()
window.title('Password Generator')
window.geometry('480x270')
window.resizable(False, False)
lenght_var = StringVar()
lenght_text = Label(text='Lenght:', font=('Ubuntu', 13))
lenght_entry = Entry(width=3, textvariable=lenght_var)
lenght_text.place(relx=.37, rely=.1)
lenght_entry.place(relx=.55, rely=.1)
symbols_var = BooleanVar(value=True)
symbols_check = Checkbutton(text='Symbols', variable=symbols_var)
symbols_check.place(relx=.4, rely=.3)
gen_psw = Button(text='Generate Password', command=generate_password)
gen_psw.place(relx=.33, rely=.5)
window.bind('<Return>', generate_password)
window.bind('<Control-s>', fun)
if __name__ == '__main__':
window.mainloop()