Почему tkinter не обновляет процент выполнения? - PullRequest
0 голосов
/ 29 мая 2018

Я играю в шахматы в tkinter с ai.Теперь в моем ai я сделал следующее (отрывок из моего общего кода):

global chess_board
length = len(total_moves)

for index, move in enumerate(total_moves):
    chess_board.percentage_label.config(text="Completion = {}".format(
        int((index + 1) / length) * 100))
    chess_board.update()

Это в моем классе chessAi, а chess_board является экземпляром моего класса chessBoard.Тем не менее, tkinter ожидает окончания цикла, и отображаются только два процента: 0 и 100. Как я могу это исправить?

1 Ответ

0 голосов
/ 30 мая 2018

Tkinter не сможет ничего сделать, пока вы находитесь в функции.Чтобы исправить это, вы можете использовать тему, но это не будет элегантно.Я бы использовал метод после виджетов tkinter, как это:

def display(index):
    move = total_moves[index]
    [your code]
    chess_board.percentage_label.after(0.01, lamda: display(index+1))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...