我正在使用ai在tkinter制作国际象棋游戏。现在,在我的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.我该如何解决这个问题?
答案 0 :(得分:0)
当你在一个函数中时,Tkinter将无法执行任何操作。 要解决这个问题,你可以使用一个线程,但它不会很优雅。 我会使用像这样的tkinter小部件的after方法:
def display(index):
move = total_moves[index]
[your code]
chess_board.percentage_label.after(0.01, lamda: display(index+1))