import random
from tkinter import *
# Listas de nomes ampliadas
nomes_masculinos = [
"João", "Pedro", "Lucas", "Gabriel", "Rafael", "Mateus", "Felipe", "André", "Thiago", "Daniel",
"Gustavo", "Bruno", "Leonardo", "Carlos", "Eduardo", "Ricardo", "Vinícius", "Jorge", "Henrique", "Francisco",
"Alexandre", "Marcos", "Roberto", "Paulo", "Fernando", "Marcelo", "Samuel", "Robson", "Mário", "Arthur"
]
nomes_femininos = [
"Maria", "Ana", "Julia", "Isabela", "Sofia", "Alice", "Laura", "Gabriela", "Rafaela", "Beatriz",
"Camila", "Larissa", "Fernanda", "Mariana", "Carla", "Juliana", "Patrícia", "Luana", "Nathalia", "Victoria",
"Ana Clara", "Larissa", "Letícia", "Priscila", "Vanessa", "Juliana", "Roberta", "Simone", "Tatiane", "Renata"
]
# Função para gerar nomes
def app():
try:
n = int(numero.get()) # Pega o número de nomes
genero = var.get() # Pega o gênero escolhido
if genero.lower() == "masculino":
lista_nomes = nomes_masculinos
elif genero.lower() == "feminino":
lista_nomes = nomes_femininos
else:
resultado_texto.config(state=NORMAL)
resultado_texto.delete(1.0, END)
resultado_texto.insert(END, "Gênero inválido. Escolha 'masculino' ou 'feminino'.")
resultado_texto.config(state=DISABLED)
return
if n > len(lista_nomes):
resultado_texto.config(state=NORMAL)
resultado_texto.delete(1.0, END)
resultado_texto.insert(END, "Quantidade maior do que a lista de nomes disponível.")
resultado_texto.config(state=DISABLED)
return
nomes_sugeridos = random.sample(lista_nomes, n)
resultado_texto.config(state=NORMAL)
resultado_texto.delete(1.0, END)
resultado_texto.insert(END, "\n".join(nomes_sugeridos))
resultado_texto.config(state=DISABLED)
except ValueError:
resultado_texto.config(state=NORMAL)
resultado_texto.delete(1.0, END)
resultado_texto.insert(END, "Por favor, insira um número válido.")
resultado_texto.config(state=DISABLED)
# Configuração da janela principal
root = Tk()
root.geometry("550x400")
root.resizable(0, 0)
root.config(bg="#103030")
root.title("Gerar Nomes")
# Título
titulo = Label(root, text="Gerar Nomes",
font=("Arial", 45, "bold"), bg="#103030", fg="#49e3e3")
titulo.place(relx=0.2, rely=0.05)
# Pergunta sobre a quantidade de nomes
texto_sub1 = Label(root, text="Quantos nomes você gostaria de gerar?",
font=("Arial", 18, "bold"), bg="#103030", fg="#49e3e3")
texto_sub1.place(relx=0.05, rely=0.32)
# Entrada de número
numero = StringVar()
numero_entrada = Entry(root, textvariable=numero,
font=("Arial", 12, "bold"),
bg="white", fg="blue", justify='center')
numero_entrada.place(relx=0.35, rely=0.4, relwidth=0.35)
# Dropdown para escolher o gênero
var = StringVar()
dropDownList = ["Masculino", "Feminino"]
var.set(dropDownList[0])
dropdown = OptionMenu(root, var, *dropDownList)
dropdown.place(relx=0.33, rely=0.55, relwidth=0.35)
# Botão de gerar nomes
but1 = Button(root, text="Gerar", bd=2, bg='#107db2', fg='white',
font=('verdana', 12, 'bold'), command=app)
but1.place(relx=0.4, rely=0.65, relwidth=0.25, relheight=0.1)
# Área para mostrar os nomes gerados com uma barra de rolagem
frame_resultado = Frame(root)
frame_resultado.place(relx=0.05, rely=0.8, relwidth=0.9, relheight=0.15)
scrollbar = Scrollbar(frame_resultado)
scrollbar.pack(side=RIGHT, fill=Y)
resultado_texto = Text(frame_resultado, wrap=WORD, yscrollcommand=scrollbar.set, font=("Arial", 12, "bold"),
bg="#cfe2f3")
resultado_texto.pack(expand=True, fill=BOTH)
scrollbar.config(command=resultado_texto.yview)
# Desativar edição no widget de texto
resultado_texto.config(state=DISABLED)
root.mainloop()