В этой статье мы будем писать интерфейс для генератора паролей на Python
Библиотеки которые понадобятся для этого проекта: random, tkinter
(Весь код будет в самом низу)
Импортируем библиотеки
Как и в прошлый раз создаём константу для всех символов которые есть на клавиатуре, и переменную для вывода
Дальше создаём цикл окна, где и будет располагаться весь интерфейс
Далее сделаем чекбатоны для выбора верхнего и/или нижнего регистра, также создадим переменные где и будут храниться их значения
После этого создадим лейбл где будет написано "Число символов:" и само поле для ввода числа
Также нам нужна кнопка при нажатии которой будет генерироваться пароль и само поле куда будет выводиться пароль
Приступим к написанию функции. Создадим цикл for и получим значение из переменной count_entry при помощи функции get() и переведём это в int, далее ставим условие и из переменной var1 и var2 получаем True или False, всё остальное нету смысла объяснять так как в прошлой части было почти тоже самое. После условий мы очищаем поле для вывода при помощи функции delete() и вставляем в него при помощи функции insert() получившийся пароль, и очищаем переменную output
Теперь осталось только вывести весь интерфейс на экран
Вот что у нас получилось, давайте расположим все объекты внутри окна более удобно, и настроем окно
Код программы:
from random import *
from tkinter import *
SYMBOLS = "1234567890_qwertyuiopasdfghjklzxcvbnm"
output = ""
def generate_password():
global output
for i in range(0, int(count_entry.get())):
if var1.get() and var2.get():
upper_lower = randint(0, 1)
if upper_lower == 0:
output += SYMBOLS[randint(0, len(SYMBOLS)-1)]
if upper_lower == 1:
output += SYMBOLS[randint(0, len(SYMBOLS)-1)].upper()
elif var1.get():
output += SYMBOLS[randint(0, len(SYMBOLS)-1)].upper()
elif var2.get():
output += SYMBOLS[randint(0, len(SYMBOLS)-1)]
output_entry.delete(0, END)
output_entry.insert(0, output)
output = ""
window = Tk()
var1 = BooleanVar()
var2 = BooleanVar()
upper_check = Checkbutton(window, text='Верхний регистр', variable=var1)
lower_check = Checkbutton(window, text='Нижний регистр', variable=var2)
lbl = Label(window, text="Число символов:")
count_entry = Spinbox(window, from_=3, to=10000)
generate_bt = Button(window, text="Сгенерировать", command=generate_password)
output_entry = Entry(window)
upper_check.place(x=0, y=10)
lower_check.place(x=0, y=30)
lbl.place(x=130, y=13)
count_entry.place(x=235, y=15)
generate_bt.place(x=5, y=55)
output_entry.place(x=105, y=59)
window["width"] = 380
window["height"] = 100
window.title("Генератор паролей")
window.resizable(0,0)
window.mainloop()