Анимированный фон с использованием двух изображений в Tkinter - PullRequest
0 голосов
/ 25 мая 2018

Я хотел бы непрерывно переключаться между двумя изображениями после некоторого интервала, скажем, (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) 

Как я уже сказал, я получаю только неподвижное изображение на фоне вместо мигающей / мигающей анимации.Любая идея, где я иду не так?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...