import tkinter as tk
import random
class RandomNumberApp:
def __init__(self, root):
"""
Конструктор класса. Здесь настраивается интерфейс и
создаются основные атрибуты объекта.
"""
self.root = root
self.root.title("Генератор")
self.root.geometry("300x150")
# Запрещаем изменение размеров окна для сохранения аккуратного вида
self.root.resizable(False, False)
# Создаем текстовую метку (Label)
# Она хранится в атрибуте self.label, чтобы к ней был доступ из других методов
self.label = tk.Label(
root,
text="Нажмите кнопку",
font=("Arial", 12),
pady=20
)
self.label.pack()
# Создаем кнопку (Button)
# Параметр command связывает нажатие с методом self.generate_number
self.button = tk.Button(
root,
text="Сгенерировать",
command=self.generate_number,
width=15,
height=2
)
self.button.pack()
def generate_number(self):
"""
Метод для генерации числа и обновления интерфейса.
Реализует основную логику приложения.
"""
number = random.randint(1, 100)
self.label.config(text=f"Случайное число = {number}")
# Основной блок запуска программы
if __name__ == "__main__":
# Создаем главное окно
root = tk.Tk()
# Создаем экземпляр нашего класса, передавая ему окно
app = RandomNumberApp(root)
# Запускаем бесконечный цикл обработки событий
root.mainloop()