Как убрать мерцание картинки при её изменении на объекте в tkinter? (python)
У меня есть Label, на котором есть картинка. Когда я меняю картинку на этом Label на другую, старая картинка убирается, а потом появляется новая. Между этими событиями я вижу пустое окно, т.е. происходит мерцание экрана при изменении картинки. Как это исправить?
from tkinter import *
import time,threading
folder = r"C:\Users\User\Desktop\test\\"
root = Tk()
root.geometry("1920x1080")
root.resizable(width=False, height=False)
image = PhotoImage(file=folder+'frame1.png')
lab = Label(root, image=image)
lab.place(x=130)
def loop(lab):
while True:
image = PhotoImage(file=folder+'frame1.png')
lab.config(image=image)
image = PhotoImage(file=folder+'frame2.png')
lab.config(image=image)
potok_1 = threading.Thread(target=loop, args=(lab,))
potok_1.start()
root.mainloop()
Ответы (1 шт):
Автор решения: Chelovek7260
→ Ссылка
Помог комментарий:
Смотрите ответ здесь python Tkinter Display images on canvas, it always blink. И про потоки в ткинтер здесь Tcl event loop – Сергей Кох
Чтобы убрать мерцание, нужно загрузить изображение следующим образом:
img = Image.open("my_image.png")
photo = ImageTk.PhotoImage(img)
label.config(image=photo) # Установка загруженного изображения
container.obr = photo