Aparecer imagem no Label selecionando no menu drop down - Tkinter - Python

Sou novo programando Python. Estou planejando fazer uma janela com um menu drop down em que a cada item selecionado através dele apareça uma imagem no Label criado dentro da janela. Só que já tentei de várias maneiras corrigir problemas e até agora não consegui identificar a solução. Eu seleciono o item no menu drop down mas não acontece nada… Nem mesmo gera algum log de erro. Outro fator que não sei como proceder é “limpar” o Label para que apareça a outra imagem. Ficarei muito grato com quem puder me ajudar. Código logo abaixo (OBS: uso Python 3.7 e a imagem está no mesmo diretório):

from tkinter import *

root = Tk()
root.geometry('500x450+450+150')
root.title('Programa Python')

menu = Menu(root)
root.config(menu=menu)

def chamaBandeira():
    photo = PhotoImage('imagem.png')
    bandeira = Label(root, image=photo)
    bandeira.pack()

subMenu = Menu(menu, tearoff=0)
menu.add_cascade(label='Bandeiras', menu=subMenu)
subMenu.add_command(label='Mongólia', command=chamaBandeira)

subMenu2 = Menu(menu, tearoff=0)
menu.add_cascade(label='Menu 2', menu=subMenu2)
subMenu2.add_command(label='Sair', command=exit)

root.mainloop()

Fala @Lucas_Santos_Ribeiro, blz?!

Então, teu código está legal, mas para funcionar da maneira que tu queres, tu vais ter que fazer algumas pequenas alterações.

1° - Declara o PhotoImage e o Label bandeira fora da função chama chamaBandeira(), se tu não fizeres isso, a cada clique no submenu o Python entendera que você quer criar um novo objeto PhotoImage e um novo objeto Label, e assim duplicando os Label's um abaixo do outro.

photo = PhotoImage(file="imagem.png")
bandeira = Label(root, image=None)
bandeira.pack()

2° - Seu método chamaBandeira() agora passará a configurar o Label bandeira.

def chamaBandeira():
    bandeira.config(image=photo)

3° - Adicionar método limpar_label(), que também configurá o Label bandeira.

def limpar_label():
    bandeira.config(image="")

4° - Agora é só adicionar a função a opção limpar_label() no menu ou em um botão.

subMenu.add_command(label='Limpar', command=limpar_label) #SubMenu Limpar.

5° - Resultado final.

from tkinter import *

root = Tk()
root.geometry('500x450+450+150')
root.title('Programa Python')
    
menu = Menu(root)
root.config(menu=menu)

#SET IMAGE IN LABEL
photo = PhotoImage(file="imagem.png")
bandeira = Label(root, image=None)
bandeira.pack()
    
def chamaBandeira():
    bandeira.config(image=photo)
    
def limpar_label():
    bandeira.config(image="")

subMenu = Menu(menu, tearoff=0)
menu.add_cascade(label='Bandeiras', menu=subMenu)
subMenu.add_command(label='Mongólia', command=chamaBandeira)

subMenu.add_command(label='Limpar', command=limpar_label) #SubMenu Limpar.

subMenu2 = Menu(menu, tearoff=0)
menu.add_cascade(label='Menu 2', menu=subMenu2)
subMenu2.add_command(label='Sair', command=exit)

root.mainloop()

Abraços!

com_f1d7d69ad78d2ff490386396b793898c