import tkinter as tk
from tkinter import messagebox
# Главное окно приложения
window = tk.Tk()
# Заголовок окна
window.title('Авторизация')
# Размер окна
window.geometry('450x230')
# Можно ли изменять размер окна — нет
window.resizable(False, False)
# Кортежи и словари, содержащие настройки шрифтов и отступов
font_header = ('Arial', 15)
font_entry = ('Arial', 12)
label_font = ('Arial', 11)
base_padding = {'padx': 10, 'pady': 8}
header_padding = {'padx': 10, 'pady': 12}
# Обработчик нажатия на клавишу «Войти»
def clicked():
username = username_entry.get()
password = password_entry.get()
# Проверка на пустые поля
if not username or not password:
messagebox.showerror('Ошибка', 'Пожалуйста, заполните все поля!')
return
# Выводим в диалоговое окно введённые пользователем данные
messagebox.showinfo(
title='Данные авторизации',
message=f'Имя пользователя: {username}\nПароль: {password}'
)
# Заголовок формы: настроены шрифт (font), отцентрирован (justify), добавлены отступы для заголовка
main_label = tk.Label(
window,
text='Авторизация',
font=font_header,
justify=tk.CENTER,
**header_padding
)
# Помещаем виджет в окно по принципу один виджет под другим
main_label.pack()
# Метка для поля ввода имени
username_label = tk.Label(window, text='Имя пользователя', font=label_font, **base_padding)
username_label.pack()
# Поле ввода имени
username_entry = tk.Entry(window, bg='#fff', fg='#444', font=font_entry)
username_entry.pack()
# Метка для поля ввода пароля
password_label = tk.Label(window, text='Пароль', font=label_font, **base_padding)
password_label.pack()
# Поле ввода пароля — скрываем символы
password_entry = tk.Entry(window, bg='#fff', fg='#444', font=font_entry, show='*')
password_entry.pack()
# Кнопка отправки формы
send_btn = tk.Button(window, text='Войти', command=clicked)
send_btn.pack(**base_padding)
# Запускаем главный цикл окна
window.mainloop()