Mundo em Python

4 Piscas

from tkinter import *

root = Tk()
root.geometry("400x400")
root.resizable(0, 0)
root.config(bg="#103030")
root.title("4 Piscas") # Variáveis para rastrear o estado dos piscas
piscando_a_esquerdo = False
piscando_f_esquerdo = False
piscando_a_direito = False
piscando_f_direito = False

# Defina o tempo de piscar (em milissegundos)
tempo_piscar = 2000 # 2 segundos

def piscar_esquerdo():
cor = "yellow" # Defina a cor para piscar
atrás_esquerdo.config(bg=cor) # Mude a cor para piscar
Frente_esquerdo.config(bg=cor)
root.after(tempo_piscar, lambda: atrás_esquerdo.config(bg="white")) # Defina um atraso para desligar o piscar
root.after(tempo_piscar, lambda: Frente_esquerdo.config(bg="white")) # Defina um atraso para desligar o piscar

# Verifique se ainda é necessário piscar
if piscando_a_esquerdo:
root.after(2 * tempo_piscar, piscar_esquerdo) # Chama a função novamente após 2 segundos
if piscando_f_esquerdo:
root.after(2 * tempo_piscar, piscar_esquerdo)
def toggle_piscar_esquerdo():
global piscando_a_esquerdo, piscando_f_esquerdo
# Inverte o estado do piscar
piscando_a_esquerdo = not piscando_a_esquerdo
piscando_f_esquerdo = not piscando_f_esquerdo
if piscando_a_esquerdo:
piscar_esquerdo() # Se piscando estiver ativado, comece a piscar
# Bloqueie os outros botões
But_direito.config(state=DISABLED)
But_4piscas.config(state=DISABLED)
else:
# Se piscando estiver desativado, pare de piscar suavemente
root.after_cancel(piscar_esquerdo) # Cancela o agendamento para parar de piscar
atrás_esquerdo.config(bg="white")
Frente_esquerdo.config(bg="white")
# Desbloqueie os outros botões
But_direito.config(state=NORMAL)
But_4piscas.config(state=NORMAL)
def piscar_direito():
cor = "yellow" # Defina a cor para piscar
atrás_direito.config(bg=cor) # Mude a cor para piscar
Frente_direito.config(bg=cor)
root.after(tempo_piscar, lambda: atrás_direito.config(bg="white")) # Defina um atraso para desligar o piscar
root.after(tempo_piscar, lambda: Frente_direito.config(bg="white")) # Defina um atraso para desligar o piscar

# Verifique se ainda é necessário piscar
if piscando_a_direito:
root.after(2 * tempo_piscar, piscar_direito) # Chama a função novamente após 2 segundos
if piscando_f_direito:
root.after(2 * tempo_piscar, piscar_direito)
def toggle_piscar_direito():
global piscando_a_direito, piscando_f_direito
# Inverte o estado do piscar
piscando_a_direito = not piscando_a_direito
piscando_f_direito = not piscando_f_direito
if piscando_a_direito:
piscar_direito() # Se piscando estiver ativado, comece a piscar
# Bloqueie os outros botões
But_esquerdo.config(state=DISABLED)
But_4piscas.config(state=DISABLED)
else:
# Se piscando estiver desativado, pare de piscar suavemente
root.after_cancel(piscar_direito) # Cancela o agendamento para parar de piscar
atrás_direito.config(bg="white")
Frente_direito.config(bg="white")
# Desbloqueie os outros botões
But_esquerdo.config(state=NORMAL)
But_4piscas.config(state=NORMAL)
def quarto_piscas():
cor = "yellow" # Defina a cor para piscar
atrás_esquerdo.config(bg=cor) # Mude a cor para piscar
Frente_esquerdo.config(bg=cor)
root.after(tempo_piscar, lambda: atrás_esquerdo.config(bg="white")) # Defina um atraso para desligar o piscar
root.after(tempo_piscar, lambda: Frente_esquerdo.config(bg="white")) # Defina um atraso para desligar o piscar

# Verifique se ainda é necessário piscar
if piscando_a_esquerdo:
root.after(2 * tempo_piscar, quarto_piscas) # Chama a função novamente após 2 segundos
if piscando_f_esquerdo:
root.after(2 * tempo_piscar, quarto_piscas)
atrás_direito.config(bg=cor) # Mude a cor para piscar
Frente_direito.config(bg=cor)
root.after(tempo_piscar, lambda: atrás_direito.config(bg="white")) # Defina um atraso para desligar o piscar
root.after(tempo_piscar, lambda: Frente_direito.config(bg="white")) # Defina um atraso para desligar o piscar

# Verifique se ainda é necessário piscar
if piscando_a_direito:
root.after(2 * tempo_piscar, quarto_piscas) # Chama a função novamente após 2 segundos
if piscando_f_direito:
root.after(2 * tempo_piscar, quarto_piscas)
def toggle_4_piscas():
global piscando_a_esquerdo, piscando_f_esquerdo, piscando_a_direito, piscando_f_direito
# Inverte o estado do piscar
piscando_a_esquerdo = not piscando_a_esquerdo
piscando_f_esquerdo = not piscando_f_esquerdo
if piscando_a_esquerdo:
quarto_piscas() # Inicia o padrão de piscar
# Bloqueie os outros botões
But_direito.config(state=DISABLED)
else:
# Se piscando estiver desativado, pare de piscar suavemente
root.after_cancel(quarto_piscas) # Cancela o agendamento para parar de piscar
atrás_esquerdo.config(bg="white")
Frente_esquerdo.config(bg="white")
atrás_direito.config(bg="white")
Frente_direito.config(bg="white")
# Desbloqueie os outros botões
But_direito.config(state=NORMAL) piscando_a_direito = not piscando_a_direito
piscando_f_direito = not piscando_f_direito
if piscando_a_direito:
quarto_piscas() # Inicia o padrão de piscar
# Bloqueie os outros botões
But_esquerdo.config(state=DISABLED)
else:
# Se piscando estiver desativado, pare de piscar suavemente
root.after_cancel(quarto_piscas) # Cancela o agendamento para parar de piscar
atrás_esquerdo.config(bg="white")
Frente_esquerdo.config(bg="white")
atrás_direito.config(bg="white")
Frente_direito.config(bg="white")
# Desbloqueie os outros botões
But_esquerdo.config(state=NORMAL)
def encerrar_programa():
# Limpa todos os agendamentos pendentes
root.after_cancel(piscar_esquerdo)
root.after_cancel(piscar_direito)
root.after_cancel(quarto_piscas)
root.destroy()
# Cria um botão para encerrar o programa
But_encerrar = Button(text="Encerrar", bd=2, bg='#107db2', fg='white',
font=('verdana', 12, 'bold'), command=encerrar_programa)
But_encerrar.place(relx=0.4, rely=0.85, relwidth=0.2, relheight=0.1) Frente_esquerdo = Label(text=" ", font=("Arial", "18", "bold"), bg="white")
Frente_esquerdo.place(relx=0.15, rely=0.1, relwidth=0.25, relheight=0.1) atrás_esquerdo = Label(text=" ", font=("Arial", "18", "bold"), bg="white")
atrás_esquerdo.place(relx=0.15, rely=0.5, relwidth=0.25, relheight=0.1) Frente_direito = Label(text=" ", font=("Arial", "18", "bold"), bg="white")
Frente_direito.place(relx=0.6, rely=0.1, relwidth=0.25, relheight=0.1) atrás_direito = Label(text=" ", font=("Arial", "18", "bold"), bg="white")
atrás_direito.place(relx=0.6, rely=0.5, relwidth=0.25, relheight=0.1) But_esquerdo = Button(text="Esquerdo", bd=2, bg='#107db2', fg='white',
font=('verdana', 12, 'bold'), command=toggle_piscar_esquerdo)
But_esquerdo.place(relx=0.05, rely=0.7, relwidth=0.25, relheight=0.1) But_direito = Button(text="Direito", bd=2, bg='#107db2', fg='white',
font=('verdana', 12, 'bold'), command=toggle_piscar_direito)
But_direito.place(relx=0.4, rely=0.7, relwidth=0.25, relheight=0.1) But_4piscas = Button(text="4 Piscas", bd=2, bg='#107db2', fg='white',
font=('verdana', 12, 'bold'), command=toggle_4_piscas)
But_4piscas.place(relx=0.7, rely=0.7, relwidth=0.25, relheight=0.1) root.mainloop()
0