当前位置: 首页 > 面试题库 >

使用Python和Tkinter制作倒数计时器吗?

陆昂然
2023-03-14
问题内容

我想使用倒数计时器功能在Tkinter中设置标签。现在,一旦达到10,我所做的全部工作就是将标签设置为“
10”,我真的不明白为什么。另外,即使我将计时器打印到终端上,“时间到了!” 一点都不打印。

import time
import tkinter as tk

class App():
    def __init__(self):
        self.root = tk.Tk()
        self.label = tk.Label(text="null")
        self.label.pack()
        self.countdown()
        self.root.mainloop()

    # Define a timer.
    def countdown(self):
        p = 10.00
        t = time.time()
        n = 0
        # Loop while the number of seconds is less than the integer defined in "p"
        while n - t < p: 
            n = time.time()
            if n == t + p:
                self.label.configure(text="Time's up!")
            else:
                self.label.configure(text=round(n - t))

app=App()

问题答案:

Tkinter已经有一个无限循环运行(事件循环),并且有一种方法可以安排在一段时间后运行事物(使用after)。您可以通过编写每秒调用一次以更新显示的函数来利用此功能。您可以使用类变量来跟踪剩余时间。

import Tkinter as tk

class ExampleApp(tk.Tk):
    def __init__(self):
        tk.Tk.__init__(self)
        self.label = tk.Label(self, text="", width=10)
        self.label.pack()
        self.remaining = 0
        self.countdown(10)

    def countdown(self, remaining = None):
        if remaining is not None:
            self.remaining = remaining

        if self.remaining <= 0:
            self.label.configure(text="time's up!")
        else:
            self.label.configure(text="%d" % self.remaining)
            self.remaining = self.remaining - 1
            self.after(1000, self.countdown)

if __name__ == "__main__":
    app = ExampleApp()
    app.mainloop()


 类似资料:
  • 我有两个XML EditTexts。在一个EditText中,用户可以将一个数字作为分钟,在另一个EditText中,可以将一个数字作为秒。单击finish按钮后,seconds EditText应开始倒计时,并每秒更新其文本。 此外,我如何保持更新,直到它达到零分钟零秒?

  • 问题内容: 我需要使用Python的tkinter库编写程序。 我的主要问题是我不知道如何创建计时器或类似 的时钟hh:。 我需要它来更新自身(这是我不知道该怎么做的)。 问题答案: 根窗口具有一种称为的方法,该方法可用于安排给定时间段后要调用的函数。如果该函数本身调用,则您已设置了一个自动重复事件。 这是一个工作示例: 请记住,这不能保证该功能将完全按时运行。它仅计划在给定的时间后运行作业。由于

  • 我想为我的简单数学游戏添加一个计时器。到目前为止,一切都很好,用户在按下按钮时会收到问题,并得到答案的反馈。我想给用户添加一个定时器,让用户看看回答乘法需要多少时间。这是我这个数学游戏原型的最后一部分。我希望定时器在用户点击“NYTT TAL”(瑞典语中的新数字)时启动,在用户点击“SVAR”(瑞典语中的应答)时停止。这是我的密码。

  • 本文向大家介绍易语言倒计时程序制作,包括了易语言倒计时程序制作的使用技巧和注意事项,需要的朋友参考一下 这里教大家怎么制作易语言倒计时程序,接下来大家看步骤就会明白了。 1、第一步添加按钮组件两个,编辑框一个,标签一个。透明标签两个。时钟一个。 再新建一个窗口程序集。 2、这里是新建的窗口程序集。有一个标签和透明标签。属性那里可以设置窗口无边框,然后标签把窗口覆盖,接着放入透明标签,什么字自己可以

  • 问题内容: 我已经在JavaScript中看到了许多倒数计时器,并希望在React中使用它。 我借用了我在网上找到的此功能: 然后我自己写了这段代码 当前onclick会将其在屏幕上的时间设置为: 但不会将其减少到,然后等等等 我想我需要使用其他参数再次调用该函数。我该怎么做呢? 编辑:我忘了说,我想要功能,这样我就可以使用秒到分钟和秒 问题答案: 您必须每秒剩余几秒钟(每次调用间隔)。这是一个例

  • 我正在尝试在两个日期之间创建倒计时,但时间过了一段时间就落后了。 我的PHP后端返回当前时间和未来X时间之间的差值,例如当前时间和提前2小时。这个差异在类,格式如下,我使用javascript函数对差异进行倒计时。以下是我的功能: 代码按预期工作,但几分钟后,比方说2-3分钟,如果您刷新页面或在新窗口中打开它,您将看到倒计时计时器落后秒/分钟。有人知道我做错了什么吗?