首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在tkinter中是否有一种方法,在运行其他函数时,每秒钟更新一次画布,直到某一段时间过去?

在tkinter中是否有一种方法,在运行其他函数时,每秒钟更新一次画布,直到某一段时间过去?
EN

Stack Overflow用户
提问于 2018-06-19 17:45:40
回答 1查看 553关注 0票数 0

我正在做一场国际象棋比赛。当ai评估位置时,我希望使用允许ai占用的最大时间的当前百分比来更新画布。有办法这样做吗?

编辑:这里是我的代码的基本示例:

代码语言:javascript
复制
def find_move():
   piece, old_x, old_y, new_x, new_y = self.ai.make_move(args)

这就调用了一个单独的ai类,它找到了最好的移动。如何使用经过的变量self?maximum_time_for_ai的当前百分比更新画布。这应该运行到最长时间已经过去或ai已经完成评估。

EN

回答 1

Stack Overflow用户

发布于 2018-06-19 18:31:33

下面是一个例子,说明我们如何使用定时交互来更新标签。我已经为GUI设置了我的主类,第二类是我们的计时器。在第二个类中,有一个名为update_per_sec的方法,我们在这里所做的是每秒钟更新画布中标签上的% 10次。在这个函数中,您可以跟踪新生成的移动。

现在,我的例子并不适用于AI,因为我不知道该代码是什么样子,但应该足够您修改这段代码以满足您的需要。

代码语言:javascript
复制
import tkinter as tk
import string
import random


class Welcome(tk.Tk):
    def __init__(self):
        tk.Tk.__init__(self)
        self.geometry("500x200")
        self.columnconfigure(0, weight=1)
        self.canvas = tk.Canvas(width=300, height=300, bg='white')   
        self.canvas.pack(expand=True, fill="both")    
        self.lbl = tk.Label(self.canvas, text="0% complete!")
        self.lbl.pack()

        self.new_move = ()
        tk.Button(self, text="Start", command=lambda: TestCode(self)).pack()


class TestCode():
    def __init__(self, master):
        self.master = master
        self.time_track = 0
        self.update_per_sec()
        self.new_move = ()

    def update_per_sec(self):
        if self.time_track != 100:
            self.master.lbl.config(text="{}% complete!".format(self.time_track))
            self.time_track += 1
            self.new_move = (random.choice(string.ascii_uppercase), random.choice(string.digits))
            self.master.after(100, self.update_per_sec)
        else:
            self.master.new_move = self.new_move
            self.master.lbl.config(text="Complete!, New move is: {}".format(self.new_move))


b = Welcome()
b.mainloop()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50934201

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档