В самой верхней части GUI приложения есть рисунок (так сказать декоративный header). Хочу в меню задать функцию по его замене, чтобы пользователь мог сам выбирать рисунок из предложенных ему. Написал функцию, но она срабатывает только после перезагрузки приложения.
Вот фрагмент кода по загрузке хедера при запуске приложения:
topFrame = Frame(root, height=100)
try:
with open('SysFiles/ChosenHeader.txt', 'r') as ch:
header_img = ch.read().strip()
except:
header_img = 'default.png'
topImg = PhotoImage(file=header_img)
l = Label(topFrame, image=topImg)
l.pack(expand=1, fill=BOTH)
topFrame.pack(fill=X)
В меню есть вкладки для замены хэдера, вот код одной из них:
header_change_menu.add_command(label='Рик и Морти', command = lambda: STYLES.change_header(header_img, 'path_to_new_img.png'))
А вот сама функция по замене:
def change_header(var_img, header_name):
with open('SysFiles/ChosenHeader.txt', 'w') as ct:
ct.write(header_name.strip())
var_img = header_name
Как исправить код, чтобы рисунок в хедере менялся сразу после нажатия на соответствующую кнопку в меню, а не после перезагрузки программы?