Загрузка данных
import tkinter as tk
from PIL import Image, ImageTk
root = tk.Tk()
root.title("авторизация")
root.geometry("350x600")
root.resizable(False, False)
root.configure(bg="blue")
def open_result(genre):
result = tk.Toplevel()
result.title("выбор книг")
result.geometry("350x600")
result.configure(bg="blue")
tk.Label(result, text="вы выбрали жанр:",
bg="blue", fg="black",
font=("Arial", 14, "bold")).pack(pady=(20, 5))
tk.Label(result, text=genre,
bg="blue", fg="black",
font=("Arial", 18, "bold")).pack(pady=(0, 15))
img1 = ImageTk.PhotoImage(Image.open("muu.jpg").resize((80, 80)))
img2 = ImageTk.PhotoImage(Image.open("maa.jpg").resize((80, 80)))
img3 = ImageTk.PhotoImage(Image.open("kzkz.jpg").resize((80, 80)))
var1 = tk.IntVar()
var2 = tk.IntVar()
var3 = tk.IntVar()
# Функция для создания одной строки: картинка + чекбокс
def make_row(parent, img, var, text):
row = tk.Frame(parent, bg="blue")
row.pack(pady=5, anchor="w", padx=30)
lbl = tk.Label(row, image=img, bg="blue")
lbl.image = img
lbl.pack(side="left", padx=10)
chk = tk.Checkbutton(row, text=text, variable=var,
bg="blue", fg="black",
activebackground="blue",
selectcolor="yellow",
font=("Arial", 11, "bold"))
chk.pack(side="left", padx=10)
frame_list = tk.Frame(result, bg="blue")
frame_list.pack(pady=10)
make_row(frame_list, img1, var1, "репка")
make_row(frame_list, img2, var2, "кошка")
make_row(frame_list, img3, var3, "теремок")
# Кнопка "Добавить" — выводит выбранные книги
def add_books():
chosen = []
if var1.get() == 1:
chosen.append("репка")
if var2.get() == 1:
chosen.append("кошка")
if var3.get() == 1:
chosen.append("теремок")
print("Добавлено:", chosen)
tk.Button(result, text="Добавить",
bg="yellow", fg="black", width=14,
command=add_books).pack(pady=20)
def open_cabinet():
root.withdraw()
cabinet = tk.Toplevel()
cabinet.title("личный кабинет")
cabinet.geometry("350x600")
cabinet.configure(bg="blue")
tk.Label(cabinet, text="личный кабинет",
bg="blue", fg="black",
font=("Arial", 14, "bold")).pack(pady=15)
tk.Frame(cabinet, bg="black", height=2).pack(fill="x")
tk.Label(cabinet, text="жанры",
bg="blue", fg="black",
font=("Arial", 13, "bold")).pack(pady=10)
img1 = ImageTk.PhotoImage(Image.open("сказки.jpg").resize((80, 80)))
img2 = ImageTk.PhotoImage(Image.open("картинка ужасы.jpg").resize((80, 80)))
img3 = ImageTk.PhotoImage(Image.open("фэнтези.jpg").resize((80, 80)))
frame_img = tk.Frame(cabinet, bg="blue")
frame_img.pack(pady=10)
lbl1 = tk.Label(frame_img, image=img1, bg="blue")
lbl1.image = img1
lbl1.pack(side="left", padx=6)
lbl2 = tk.Label(frame_img, image=img2, bg="blue")
lbl2.image = img2
lbl2.pack(side="left", padx=6)
lbl3 = tk.Label(frame_img, image=img3, bg="blue")
lbl3.image = img3
lbl3.pack(side="left", padx=6)
genre = tk.StringVar()
genre.set("сказки")
frame_genres = tk.Frame(cabinet, bg="blue")
frame_genres.pack(pady=10)
tk.Radiobutton(frame_genres, text="сказки", variable=genre, value="сказки",
bg="blue", fg="black").pack(side="left", padx=6)
tk.Radiobutton(frame_genres, text="ужасы", variable=genre, value="ужасы",
bg="blue", fg="black").pack(side="left", padx=6)
tk.Radiobutton(frame_genres, text="фэнтези", variable=genre, value="фэнтези",
bg="blue", fg="black").pack(side="left", padx=6)
tk.Button(cabinet, text="Выбрать",
bg="yellow", fg="black", width=14,
command=lambda: o pen_result(genre.get())).pack(pady=15)
tk.Label(cabinet, text="Адрес библиотека",
bg="blue", fg="black").pack(side="bottom", pady=15)
frame_login = tk.Frame(root, bg="blue")
frame_login.pack()
photo = ImageTk.PhotoImage(Image.open("book.jpg").resize((150, 150)))
lbl_logo = tk.Label(frame_login, image=photo, bg="blue")
lbl_logo.image = photo
lbl_logo.pack(pady=20)
tk.Label(frame_login, text="авторизация",
bg="blue", fg="black",
font=("Arial", 16, "bold")).pack(pady=10)
tk.Label(frame_login, text="Логин:", bg="blue", fg="black").pack()
entry_login = tk.Entry(frame_login, width=24, bg="yellow", fg="black")
entry_login.pack(pady=5)
tk.Label(frame_login, text="Пароль:", bg="blue", fg="black").pack()
entry_password = tk.Entry(frame_login, width=24, show="*", bg="yellow", fg="black")
entry_password.pack(pady=5)
tk.Button(frame_login, text="Войти",
bg="yellow", fg="black", width=18,
command=open_cabinet).pack(pady=15)
root.mainloop()