Mundo em Python

Grandes Batalhas na URSS (1941-1945)

from tkinter import *
import webbrowser root = Tk()
root.geometry("700x650")
root.resizable(0, 0)
root.config(bg="#103030")
root.title("Segunda Guerra Mundial - Frente Leste") titulo = Label(text="Grandes Batalhas na URSS (1941-1945)",
font=("Arial", "22", "bold"), bg="#103030", fg="#49e3e3")
titulo.place(relx=0.05, rely=0.05) batalhas = {
"Cerco a Leninegrado":
"Duração: Setembro de 1941 – Janeiro de 1944\n\n"
"Um dos episódios mais cruéis da guerra, que durou quase 900 dias.\n\n"
"O cenário: A cidade foi cercada e os mantimentos cortados. A população enfrentou frio extremo e fome.\n\n"
"O desfecho: A cidade resistiu até ser libertada. Morreram mais de um milhão de civis, maioritariamente de inanição.",

"Batalha de Moscovo":
"Duração: Outubro de 1941 – Janeiro de 1942\n\n"
"O momento em que o avanço alemão foi travado pela primeira vez.\n\n"
"O cenário: A Operação Tufão visava capturar a capital. Os alemães chegaram aos subúrbios, mas foram travados pelo gelo e pela defesa feroz.\n\n"
"O desfecho: A vitória soviética provou que a máquina de guerra alemã não era invencível.",

"Batalha de Estalinegrado":
"Duração: Agosto de 1942 – Fevereiro de 1943\n\n"
"O ponto de viragem de toda a Segunda Guerra Mundial.\n\n"
"O cenário: Luta brutal casa a casa. Os soviéticos cercaram o 6.º Exército Alemão na Operação Úrano.\n\n"
"O desfecho: A rendição nazi foi um golpe do qual a Alemanha nunca recuperou totalmente.",

"Batalha de Kursk":
"Duração: Julho – Agosto de 1943\n\n"
"A maior batalha de tanques da história.\n\n"
"O cenário: A Alemanha tentou retomar a iniciativa (Operação Cidadela), mas os soviéticos criaram defesas impenetráveis.\n\n"
"O desfecho: O fracasso alemão marcou o início da retirada constante da Wehrmacht até Berlim.",

"Operação Bagration":
"Duração: Junho – Agosto de 1944\n\n"
"Ofensiva colossal que destruiu o Grupo de Exércitos Centro alemão.\n\n"
"O cenário: Lançada após o Dia D, dizimou as forças alemãs na Bielorrússia.\n\n"
"O desfecho: O território soviético foi limpo de invasores, abrindo caminho para a Polónia e Berlim."
} # Dados geográficos adicionais
coordenadas = {
"Cerco a Leninegrado": {"lat": "59.9311", "lon": "30.3609",
"url": "https://www.google.com/maps/place/59.9311,30.3609"},
"Batalha de Moscovo": {"lat": "55.7558", "lon": "37.6173",
"url": "https://www.google.com/maps/place/55.7558,37.6173"},
"Batalha de Estalinegrado": {"lat": "48.7080", "lon": "44.5133",
"url": "https://www.google.com/maps/place/48.7080,44.5133"},
"Batalha de Kursk": {"lat": "51.7373", "lon": "36.1874",
"url": "https://www.google.com/maps/place/51.7373,36.1874"},
"Operação Bagration": {"lat": "53.9006", "lon": "27.5590",
"url": "https://www.google.com/maps/place/53.9006,27.5590"}
} var = StringVar()
def abrir_mapa():
v = var.get()
url = coordenadas[v]["url"]
webbrowser.open_new_tab(url)
def app(event=None):
v = var.get()
texto_historia = batalhas.get(v, "")
lat = coordenadas[v]["lat"]
lon = coordenadas[v]["lon"] # Mantém o teu texto e acrescenta a localização no fim
texto_final = f"{texto_historia}\n\n---\n LOCALIZAÇÃO GEOGRÁFICA:\nLatitude: {lat} | Longitude: {lon}"
resultado_texto.config(text=texto_final)
# Lista para o Dropdown
dropDownList = list(batalhas.keys()) dropdown = OptionMenu(root, var, *dropDownList, command=app)
var.set(dropDownList[0]) dropdown.place(relx=0.15, rely=0.15, relwidth=0.7)
dropdown.config(
background='#09A3BA',
foreground="#FFFFFF",
font=("Arial", "14", "bold"),
cursor="hand2"
) # Área do texto
resultado_texto = Label(
root,
text="",
font=("Arial", 11),
bg="#cfe2f3",
fg="#000000",
wraplength=600,
justify="left",
anchor="n",
padx=20,
pady=20
)
resultado_texto.place(relx=0.05, rely=0.25, relwidth=0.9, relheight=0.58) # Botão para o Google Maps
btn_mapa = Button(
root,
text="Ver Localização no Google Maps",
command=abrir_mapa,
bg="#49e3e3",
fg="#103030",
font=("Arial", "12", "bold"),
cursor="hand2"
)
btn_mapa.place(relx=0.25, rely=0.85, relwidth=0.5, relheight=0.08) app()
root.mainloop()
0