簡體   English   中英

為什么tkinter不更新完成百分比?

[英]Why isn't tkinter updating the percentage completion?

我正在用AI在Tkinter制作國際象棋游戲。 現在,在我的助手中,我完成了以下操作(摘錄自我的全部代碼):

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。我該如何解決?

當您使用函數時,Tkinter將無法執行任何操作。 為了解決這個問題,您可以使用Thread,但是它並不優雅。 我會像這樣使用tkinter小部件的after方法:

def display(index):
    move = total_moves[index]
    [your code]
    chess_board.percentage_label.after(0.01, lamda: display(index+1))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM