任务需求

在实际开发中会遇到在用户点击了发送验证码功能后,需要按钮显示倒计时,禁用按钮(防止用户在此点击触发),并在倒计时结束后显示再次发送的功能。  

现在需求有了,我们开始根据需求进行编码。

编码

使用python的gui标准库tkinter进行编码

from tkinter import*


# 导包

class App(Frame):
# 创建类
def __init__(self, maskter=None):
super().__init__(maskter)
self.maskter = maskter
self.pack()
self.time = 60
# 设置倒计时时间
self.btn()
# 调用创建按钮方法


def btn(self):
self.bt = Button(self.maskter, text='发送验证码'
, command=self.click, width=20)
# 创建按钮
self.bt.pack()
# 显示在root上

def click(self):
# 单击按钮调用该方法
after = self.bt.after(1000, self.click)
# 延时1秒在此调用该方法
self.time -= 1
# 调用一次时间减一
self.bt['text'] = self.time
# 将按钮的文本设为倒计时时间
self.bt['state'] = 'disable'
# 禁用按钮
if self.time == 0:
# 倒计时结束
self.time = 60
# 重置倒计时时间
self.bt['state'] = 'normal'
# 启用按钮
self.bt['text'] = '重新发送'
# 将按钮文本设为重新发送
self.bt.after_cancel(after)
# 取消延时调用


root = Tk()
root.title('倒计时')
# 设置窗口标题
root.geometry('300x300')
# 设置窗口大小
app = App(root)
# 创建类对象
root.mainloop()
# 循环显示
结果
启动

通过使用tkinter实现简单倒计时功能_验证码

发送验证码

通过使用tkinter实现简单倒计时功能_窗口大小_02

倒计时结束

通过使用tkinter实现简单倒计时功能_窗口大小_03