from tkinter import *
# Lista de distritos e regiões autónomas
distritos_portugal = [
"Aveiro", "Beja", "Braga", "Bragança", "Castelo Branco", "Coimbra",
"Évora", "Faro", "Guarda", "Leiria", "Lisboa", "Portalegre",
"Porto", "Santarém", "Setúbal", "Viana do Castelo", "Vila Real", "Viseu",
"Região Autónoma da Madeira", "Região Autónoma dos Açores"
]
# Dicionário com concelhos por distrito/região
concelhos_distritos = {
"Aveiro": ["Águeda", "Albergaria-a-Velha", "Anadia", "Arouca", "Aveiro",
"Castelo de Paiva", "Espinho", "Estarreja", "Ílhavo", "Mealhada",
"Murtosa", "Oliveira de Azeméis", "Oliveira do Bairro", "Ovar",
"Santa Maria da Feira", "São João da Madeira",
"Sever do Vouga", "Vagos", "Vale de Cambra"],
"Beja": ["Aljustrel", "Almodôvar", "Alvito", "Barrancos",
"Beja", "Castro Verde", "Cuba", "Ferreira do Alentejo",
"Mértola", "Moura", "Ourique", "Serpa", "Vidigueira"],
"Braga": ["Amares", "Barcelos", "Braga", "Cabeceiras de Basto",
"Celorico de Basto", "Esposende", "Fafe", "Guimarães",
"Póvoa de Lanhoso", "Terras de Bouro", "Vieira do Minho",
"Vila Nova de Famalicão", "Vila Verde", "Vizela"],
"Bragança": ["Alfândega da Fé", "Bragança", "Carrazeda de Ansiães",
"Freixo de Espada à Cinta", "Macedo de Cavaleiros",
"Miranda do Douro", "Mirandela", "Mogadouro",
"Torre de Moncorvo", "Vila Flor", "Vimioso", "Vinhais"],
"Castelo Branco": ["Belmonte", "Castelo Branco", "Covilhã", "Fundão",
"Idanha-a-Nova", "Oleiros", "Penamacor", "Proença-a-Nova",
"Sertã", "Vila de Rei", "Vila Velha de Ródão"],
"Coimbra": ["Arganil", "Cantanhede", "Coimbra", "Condeixa-a-Nova",
"Figueira da Foz", "Góis", "Lousã", "Mira", "Miranda do Corvo",
"Montemor-o-Velho", "Oliveira do Hospital", "Penacova",
"Penela", "Soure", "Tábua", "Vila Nova de Poiares"],
"Évora": ["Alandroal", "Arraiolos", "Borba", "Estremoz", "Évora",
"Montemor-o-Novo", "Mora", "Mourão", "Portel", "Redondo",
"Reguengos de Monsaraz", "Vendas Novas",
"Viana do Alentejo", "Vila Viçosa"],
"Faro": ["Albufeira", "Alcoutim", "Aljezur", "Castro Marim",
"Faro", "Lagoa", "Lagos", "Loulé", "Monchique", "Olhão", "Portimão",
"São Brás de Alportel", "Silves", "Tavira", "Vila do Bispo", "Vila Real de Santo António"],
"Guarda": ["Aguiar da Beira", "Almeida", "Celorico da Beira",
"Figueira de Castelo Rodrigo", "Fornos de Algodres",
"Gouveia", "Guarda", "Manteigas", "Mêda", "Pinhel",
"Sabugal", "Seia", "Trancoso", "Vila Nova de Foz Côa"],
"Leiria": ["Alcobaça", "Alvaiázere", "Ansião", "Batalha", "Bombarral", "Caldas da Rainha",
"Castanheira de Pera", "Figueiró dos Vinhos", "Leiria", "Marinha Grande",
"Nazaré", "Óbidos", "Pedrógão Grande", "Peniche", "Pombal", "Porto de Mós"],
"Lisboa": ["Alenquer", "Amadora", "Arruda dos Vinhos", "Cadaval",
"Cascais", "Lisboa", "Loures", "Lourinhã", "Mafra", "Odivelas",
"Oeiras", "Sintra", "Sobral de Monte Agraço", "Torres Vedras", "Vila Franca de Xira"],
"Portalegre": ["Alter do Chão", "Arronches", "Avis", "Campo Maior",
"Castelo de Vide", "Crato", "Elvas", "Fronteira", "Gavião",
"Marvão", "Monforte", "Nisa", "Ponte de Sor", "Portalegre", "Sousel"],
"Porto": ["Amarante", "Baião", "Felgueiras", "Gondomar", "Lousada", "Maia",
"Marco de Canaveses", "Matosinhos", "Paços de Ferreira", "Paredes",
"Penafiel", "Porto", "Póvoa de Varzim", "Santo Tirso", "Trofa",
"Valongo", "Vila do Conde", "Vila Nova de Gaia"],
"Santarém": ["Abrantes", "Alcanena", "Almeirim", "Alpiarça", "Benavente",
"Cartaxo", "Chamusca", "Constância", "Coruche", "Entroncamento",
"Ferreira do Zêzere", "Golegã", "Mação", "Ourém", "Rio Maior",
"Salvaterra de Magos", "Santarém", "Sardoal", "Tomar",
"Torres Novas", "Vila Nova da Barquinha"],
"Setúbal": ["Alcácer do Sal", "Almada", "Barreiro", "Grândola", "Moita",
"Montijo", "Palmela", "Seixal", "Sesimbra",
"Setúbal", "Santiago do Cacém", "Sines"],
"Viana do Castelo": ["Arcos de Valdevez", "Caminha", "Melgaço",
"Monção", "Paredes de Coura", "Ponte da Barca",
"Ponte de Lima", "Valença",
"Viana do Castelo", "Vila Nova de Cerveira"],
"Vila Real": ["Alijó", "Boticas", "Chaves", "Mesão Frio", "Mondim de Basto",
"Montalegre", "Murça", "Peso da Régua", "Ribeira de Pena",
"Sabrosa", "Santa Marta de Penaguião", "Valpaços",
"Vila Pouca de Aguiar", "Vila Real"],
"Viseu": ["Armamar", "Carregal do Sal", "Castro Daire", "Cinfães",
"Lamego", "Mangualde", "Moimenta da Beira", "Mortágua", "Nelas",
"Oliveira de Frades", "Penalva do Castelo", "Penedono", "Resende",
"Santa Comba Dão", "São João da Pesqueira", "São Pedro do Sul",
"Sátão", "Sernancelhe", "Tabuaço", "Tarouca", "Tondela",
"Vila Nova de Paiva", "Viseu", "Vouzela"],
"Região Autónoma da Madeira": ["Calheta", "Câmara de Lobos", "Funchal",
"Machico", "Ponta do Sol", "Porto Moniz",
"Porto Santo", "Ribeira Brava",
"Santa Cruz", "Santana", "São Vicente"],
"Região Autónoma dos Açores": ["Angra do Heroísmo", "Calheta (Açores)", "Corvo",
"Horta", "Lagoa (Açores)", "Lajes das Flores",
"Lajes do Pico", "Madalena", "Nordeste",
"Ponta Delgada", "Povoação", "Praia da Vitória",
"Ribeira Grande", "Santa Cruz da Graciosa", "Santa Cruz das Flores",
"São Roque do Pico", "Velas",
"Vila do Porto", "Vila Franca do Campo"]
}
# Função que mostra os concelhos
def mostrar_informacoes():
distrito = var.get()
concelhos = concelhos_distritos.get(distrito, [])
resultado_texto.config(state=NORMAL)
resultado_texto.delete("1.0", END)
if concelhos:
texto = f"Concelhos de {distrito}:\n- " + "\n- ".join(concelhos)
else:
texto = f"Nenhuma informação disponível para {distrito}."
resultado_texto.insert(END, texto)
resultado_texto.config(state=DISABLED)
# Interface
root = Tk()
root.geometry("400x500")
root.resizable(0, 0)
root.config(bg="#103030")
root.title("Distritos Portugal")
titulo = Label(text="Distritos Portugal", font=("Arial", 24, "bold"), bg="#103030", fg="#49e3e3")
titulo.place(relx=0.15, rely=0.05)
var = StringVar()
var.set(distritos_portugal[0])
dropdown = OptionMenu(root, var, *distritos_portugal)
dropdown.place(relx=0.18, rely=0.20, relwidth=0.7)
dropdown.config(background='#09A3BA', foreground="#FFFFFF", font=("Arial", 14, "bold"))
dropdown["menu"].config(background='#09A3BA', foreground="#FFFFFF", font=("Arial", 12))
btn_mostrar = Button(text="Mostrar", bd=2, bg='#107db2', fg='white',
font=('Verdana', 12, 'bold'), command=mostrar_informacoes)
btn_mostrar.place(relx=0.38, rely=0.35, relwidth=0.25, relheight=0.08)
# Widget Text com Scrollbar
frame_resultado = Frame(root)
frame_resultado.place(relx=0.05, rely=0.45, relwidth=0.9, relheight=0.5)
scrollbar = Scrollbar(frame_resultado)
scrollbar.pack(side=RIGHT, fill=Y)
resultado_texto = Text(frame_resultado, wrap=WORD, yscrollcommand=scrollbar.set,
font=("Arial", 10, "bold"), bg="#cfe2f3")
resultado_texto.pack(side=LEFT, fill=BOTH, expand=True)
resultado_texto.config(state=DISABLED)
scrollbar.config(command=resultado_texto.yview)
root.mainloop()
Comentários
Enviar um comentário