##############################################################################
# Parte do livro Introdução à Programação com Python
# Autor: Nilo Ney Coutinho Menezes
# Editora Novatec (c) 2010-2024
# Quarta Edição - Março/2024 - ISBN 978-85-7522-886-9
#
# Site: https://python.nilo.pro.br/
#
# Arquivo: capítulo 13/13.03 - Usando classes para compor a interface.py
##############################################################################
import tkinter as tk
from tkinter import ttk
class Aplicação(tk.Tk):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.contador_1 = 0
self.contador_2 = 0
self.title("Contadores")
self.geometry("250x100")
self.cria_quadro()
def cria_quadro(self):
self.quadro = ttk.Frame(self)
self.l_contador_1 = ttk.Label(
self.quadro, text=self.formata_contador(1, self.contador_1)
)
self.l_contador_1.pack()
self.botao_1 = ttk.Button(
self.quadro, text="Adiciona ao contador 1", command=self.conta_1
)
self.botao_1.pack()
self.l_contador_2 = ttk.Label(
self.quadro, text=self.formata_contador(2, self.contador_2)
)
self.l_contador_2.pack()
self.botao_2 = ttk.Button(
self.quadro, text="Adiciona ao contador 2", command=self.conta_2
)
self.botao_2.pack()
self.quadro.pack(expand=True)
def formata_contador(self, contador, valor):
return f"Contador {contador}: {valor}"
def conta_1(self):
self.contador_1 += 1
self.l_contador_1["text"] = self.formata_contador(1, self.contador_1)
def conta_2(self):
self.contador_2 += 1
self.l_contador_2["text"] = self.formata_contador(2, self.contador_2)
raiz = Aplicação()
raiz.mainloop()