Atenção: Este código não é meu
import tkinter as tk # Dados: país -> cidades
dados = {
"Portugal": ["Porto", "Lisboa", "Braga"],
"Brasil": ["São Paulo", "Rio de Janeiro", "Salvador"],
"Espanha": ["Madrid", "Barcelona", "Sevilha"]
} # Indicativos telefónicos por cidade
indicativos = {
"Porto": "+351 22",
"Lisboa": "+351 21",
"Braga": "+351 253",
"São Paulo": "+55 11",
"Rio de Janeiro": "+55 21",
"Salvador": "+55 71",
"Madrid": "+34 91",
"Barcelona": "+34 93",
"Sevilha": "+34 95"
} def atualizar_cidades(*args):
pais = pais_var.get() menu_cidades = cidade_menu["menu"]
menu_cidades.delete(0, "end") novas_cidades = dados.get(pais, []) cidade_var.set(novas_cidades[0] if novas_cidades else "") for cidade in novas_cidades:
menu_cidades.add_command(
label=cidade,
command=lambda c=cidade: cidade_var.set(c)
) atualizar_indicativo() def atualizar_indicativo(*args):
cidade = cidade_var.get()
indicativo = indicativos.get(cidade, "Desconhecido")
label_indicativo.config(text=f"Indicativo: {indicativo}") root = tk.Tk()
root.title("Dependência de OptionMenu") # Variáveis
pais_var = tk.StringVar(value="Portugal")
cidade_var = tk.StringVar() # OptionMenu País
tk.Label(root, text="País").pack()
pais_menu = tk.OptionMenu(root, pais_var, *dados.keys())
pais_menu.pack() # OptionMenu Cidade
tk.Label(root, text="Cidade").pack()
cidade_menu = tk.OptionMenu(root, cidade_var, "")
cidade_menu.pack() # Label para indicativo
label_indicativo = tk.Label(root, text="Indicativo: ")
label_indicativo.pack(pady=10) # Ligações
pais_var.trace_add("write", atualizar_cidades)
cidade_var.trace_add("write", atualizar_indicativo) # Inicialização
atualizar_cidades() root.mainloop()