Я хотел бы непрерывно переключаться между двумя изображениями после некоторого интервала, скажем, (200 мс), чтобы получить анимированный мигающий / мигающий вид на фоне.Пока мне удалось получить только неподвижное изображение.
Этот следующий код является дочерним окном главной программы, которая вызывает функцию Refresher.
Основная функция:
def rad_alarm(self):
self.alarm = Tk.Toplevel()
self.alarm.geometry('1024x600')
#self.alarm.title("Alert")
vFont = tkFont.Font(family = 'Helvetica', size = 30)
#self.center(self.alarm)
self.alarm.overrideredirect(1)
#self.alarm.wm_attributes('-type', 'splash');
radfilename = PhotoImage(file = "radio1.png")
self.alarm.background_label = Label(self.alarm, image=radfilename)
self.alarm.background_label.pack()
bcklbl = Label(self.alarm, text = str(bck), bg="black", fg="Yellow", font=vFont)
bcklbl.place(x = 825, y = 300, width=140, height=40)
cpslbl = Label(self.alarm, text = str(counti), bg="black", fg="Yellow", font=vFont)
cpslbl.place(x = 825, y = 445, width=140, height=40)
dtlbl = Label(self.alarm, text = datetime.now().strftime('%Y-%m-%d %H:%M:%S'), bg="black", fg="Yellow", font=vFont)
dtlbl.place(x = 630, y = 140, width=380, height=40)
button=Button(self.alarm, text="Acknowledge Alarm", command=self.alarm_close, relief=FLAT, bg="black", fg="Red", font=vFont)
button.place(x = 400, y = 510, width=380, height=80)
dt=str(datetime.now().strftime('%Y-%m-%d %H:%M:%S'))
self.conn.execute("INSERT INTO ALARMS (CPS,BCK,DT) VALUES (?,?,?)",(counti, bck, dt));
self.conn.commit()
self.Refresher()
Функция, вызываемая для анимации:
def Refresher(self):
sleep(0.1)
radfilename = PhotoImage(file = "radio2.png")
self.alarm.background_label.configure(image=radfilename)
sleep(0.1)
radfilename = PhotoImage(file = "radio1.png")
self.alarm.background_label.configure(image=radfilename)
self.alarm.background_label.after(200, self.Refresher)
Как я уже сказал, я получаю только неподвижное изображение на фоне вместо мигающей / мигающей анимации.Любая идея, где я иду не так?