import random
from tkinter import *
temas = ["amor", "saudade", "noite", "coração", "destino", "sonho"]
verbos = ["arde", "chama", "brilha", "desaparece", "explode", "dança"]
lugares = ["na cidade", "no silêncio", "no escuro", "no infinito", "no meu peito"]
sentimentos = ["tão forte", "sem fim", "perdido", "intenso", "verdadeiro"]
estruturas = [
"Meu {tema} {verbo} {lugar}",
"{tema} {verbo} {sentimento}",
"Sinto {tema} {lugar}",
"Nosso {tema} é {sentimento}"
]
def gerar_verso():
estrutura = random.choice(estruturas)
return estrutura.format(
tema=random.choice(temas),
verbo=random.choice(verbos),
lugar=random.choice(lugares),
sentimento=random.choice(sentimentos)
)
def gerar_musica():
musica = []
musica.append("=== Verso 1 ===")
for _ in range(4):
musica.append(gerar_verso())
musica.append("\n=== Refrão ===")
for _ in range(2):
musica.append(gerar_verso())
musica.append("\n=== Verso 2 ===")
for _ in range(4):
musica.append(gerar_verso())
musica.append("\n=== Refrão ===")
for _ in range(2):
musica.append(gerar_verso())
return "\n".join(musica)
root = Tk()
root.geometry("700x400")
root.resizable(0, 0)
root.config(bg="#103030")
root.title("Gerador de Letras")
titulo = Label(root, text="Gerador de Letras",
font=("Arial", 28, "bold"),
bg="#103030", fg="#49e3e3")
titulo.place(relx=0.25, rely=0.05)
def app():
texto = gerar_musica()
resultado_texto.delete(1.0, END)
resultado_texto.insert(END, texto)
def limpar():
resultado_texto.delete(1.0, END)
Button(root, text="Gerar",
command=app,
bg='#107db2', fg='white',
font=('verdana', 12, 'bold')
).place(relx=0.1, rely=0.25, relwidth=0.25, relheight=0.1)
Button(root, text="Limpar",
command=limpar,
bg='#107db2', fg='white',
font=('verdana', 12, 'bold')
).place(relx=0.4, rely=0.25, relwidth=0.25, relheight=0.1)
Button(root, text="Sair",
command=root.destroy,
bg='#107db2', fg='white',
font=('verdana', 12, 'bold')
).place(relx=0.7, rely=0.25, relwidth=0.25, relheight=0.1)
frame = Frame(root)
frame.place(relx=0.05, rely=0.4, relwidth=0.9, relheight=0.5)
scroll = Scrollbar(frame)
scroll.pack(side=RIGHT, fill=Y)
resultado_texto = Text(frame,
font=("Arial", 12),
bg="#cfe2f3",
wrap=WORD,
yscrollcommand=scroll.set)
resultado_texto.pack(side=LEFT, fill=BOTH, expand=True)
scroll.config(command=resultado_texto.yview)
root.mainloop()