Создание паузы в цикле for в Tkinter - PullRequest
0 голосов
/ 08 декабря 2018

В этой ситуации я хочу дважды повторить self.players.Для каждой итерации я хочу сделать паузу на 1 секунду перед вызовом метода печати.Как я могу заставить его работать?Вот упрощенный пример:

import tkinter as tk

class Main(tk.Tk):
    def __init__(self):
        tk.Tk.__init__(self)
        self.players = [1, 2, 3, 4, 5]
        self.play()

    def play(self):
        for x in range(2):
            for player in self.players:
                self.after(1000, self.print, player)

    def print(self, player):
        print(player)

if __name__ == '__main__':
    Main()

1 Ответ

0 голосов
/ 08 декабря 2018
  1. Управление счетчиком напрямую

  2. self.after должен вызывать метод play, а не метод print

    import tkinter as tk
    
    class Main(tk.Tk):
        def __init__(self):
             tk.Tk.__init__(self)
             self.counter=0
             self.players = [1, 2, 3, 4, 5]
             self.after(1000,self.play)
    
       def play(self):
             if self.counter<2:
                 for player in self.players:
                     (self.print(player))
                 self.counter+=1
                 self.after(1000,self.play)
    
       def print(self, player):
             print(player)
    
    if __name__ == '__main__':
       Main()
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...