Как заставить Tkinter.after () правильно задерживать переменную? - PullRequest
0 голосов
/ 21 сентября 2019

Я пытаюсь исправить написанную мной программу анимации, чтобы обеспечить переменную задержку при отображении изображений в качестве элемента управления частотой кадров для воспроизведения незаконченной работы.

Я использую tkinter.after ()метод отсрочки смены картинки.Я использовал переменную для определения частоты кадров и десятичной.Эти методы определены в более крупном классе.

def Implay(self):
  #Get the images and format them for playback
  if self.play_no<self.no:
      im = self.Tk_captured_frames[self.play_no]

      self.play_window.configure(image = im)
      self.play_window.image = im
      self.play_window.update()
      self.play_no+=1
      self.root5.after(self.rate, self.Implay)



def playback(self):
  #create the playback window
  self.PlayRunning = True
  rate = int(self.frame_rate)
  self.root5 = tk.Toplevel()
  self.play_no = 0
  self.play_window = tk.Label(self.root5, image = None)
  self.play_window.pack()
  self.rate = int(round(1000/rate))
  self.tot = 0
  self.Implay()
  self.root5.mainloop()

  self.PlayRunning = False

На этом этапе для self.frame_rate установлено значение 24. При таком запуске кадры, которые должны воспроизводиться в течение 3 секунд, вместо этого занимают около 8. Однакоесли я введу 24 вместо self.frame_rate в определении self.rate, отснятый материал будет запущен в течение правильного времени.

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