Так как мы чемпионы по медленной печати, программа авторизации сильно проще, чем она должна была быть:
В общем виде проект в VSCode выглядит вот так:

Т.е У нас 4 файла всего:
- configuration.py — содержит константы, конфигурирующие окно
- checker.py — содержит описание класса Checker, который содержит данные пользователя и имеет метод, позволяющий передать ему введённые логин-пароль, сравнить их с хранимыми и выдать вердикт совпадают они или нет в виде логического значения True или False
- window.py — основная программа
- icon3.ico — иконка приложения
Иконки приложений можно бесплатно скачать на сайте https://www.icon-icons.com
Файл configuration.py:
WIN_TITLE = "My window"
WIN_WIDTH = 800
WIN_HEIGHT = 600
WIN_ICON = "icon3.ico"
Файл checker.py:
class Checker():
def __init__(self, login, password):
self._login = login
self._password = password
def check(self, login, password):
if login == self._login and password == self._password:
return True
else:
return False
Файл window.py:
Тут задаются основные параметры окна, все его элементы, создаётся объект типа Checker, объявляется функция реакции программы на результат проверки логина и пароля.
import tkinter as tk
from configuration import *
from checker import Checker
mainWindow = tk.Tk()
mainWindow.title(WIN_TITLE)
mainWindow.geometry( f"{WIN_WIDTH}x{WIN_HEIGHT}" )
mainWindow.iconbitmap(WIN_ICON)
txt = tk.Text(mainWindow, width=15, height=1)
txt.pack()
txt2 = tk.Text(mainWindow, width=15, height=1)
txt2.pack()
checker = Checker("ivan","qwerty")
def Auth():
log = txt.get(1.0,tk.END).strip()
pss = txt2.get(1.0,tk.END).strip()
print(log,pss)
if checker.check(log, pss):
print("Доступ получен")
else:
print("Неправильные данные!")
btn = tk.Button( mainWindow, text="Сказать привет!", command=Auth)
btn.pack()
mainWindow.mainloop()