Загрузка данных


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()