python,根据tkinter计数器案例,写了个倒计时器

本文介绍了如何使用Python的tkinter库创建计数器和倒计时器应用。通过简单的代码示例和解析,展示了如何实现点击按钮增加或减少计数,以及自定义初始值和倒计时功能。文章鼓励读者举一反三,提升学习兴趣。
摘要由CSDN通过智能技术生成

目录

前言:

一、案例计数器

1、效果图

2、代码

  3、解析

二、调优后效果

1、效果图

​编辑 2、代码

 3、解析

​编辑 三、变装为倒计时器

1、效果

 2、代码

 3、解析

 四、总结

前言:

        最近偶尔有空抽出时间来学习python的GUI,又看到了尾大不掉的tkinter,然后CSDN官方也把它地位拉的很高。然后给出了这几点理由。

1、kinter有一个与生俱来的优势:无需安装就可以直接使用
2、相较于wx或Qt多如牛毛的控件和组件,Tk只用十几个控件就可以满足几乎所有的应用需求

        其实确实简单,有基础的同学,大概花个1小时就又能融会贯通了。哈哈哈,话不多说,进入正题,来说说今天的计数器和倒计时器是怎么反转的。

一、案例计数器

        还是使用我们的3点定位法,效果图+代码+解析来唠唠哈。

1、效果图

        就是一个按钮加上一个会动的数字,你每次点击按钮就会加1,默认从0开始。真是简单粗暴~

2、代码

from tkinter import *


class MyApp(Tk):
    """继承Tk,创建自己的桌面应用程序类"""

    def __init__(self):
        """构造函数"""

        super().__init__()

        self.title('按钮点击计数器')
        self.geometry('320x160')
        #self.iconbitmap('res/Tk.ico')#图标,如果不想用默认图标就改了它

        self.counter = IntVar()  # 创建一个整型变量对象
        self.counter.set(0)  # 置其初值为0

        label = Label(self, textvariable=self.counter, font=("Arial Bold", 50))  # 将Label和整型变量对象关联
        label.pack(side='left', expand='yes', fill='both', padx=5, pady=5)

        btn = Button(self, text='点我试试看', bg='#90F0F0')
        btn.pack(side='right', anchor='center', fill='y', padx=5, pady=5)

        btn.bind(sequence='<Button-1>', func=self.on_button)  # 绑定事件和事件函数

    def on_button(self, evt):
        """点击按钮事件的响应函数, evt是事件对象"""

        self.counter.set(self.counter.get() + 1)


if __name__ == '__main__':
    app = MyApp()
    app.mainloop()

  3、解析

二、调优后效果

1、效果图

        可以自定义初始值,按你想去的楼层步步高升,哈哈哈

 2、代码

from tkinter import  *
import time

class MyApp(Tk):

    def __init__(self):
        super().__init__()
        self.title('这是一个计数器')#设置标题
        self.geometry('380x160')#设置画布大小
        self.iconbitmap('res\Tk.ico')#设置应用图标

        self.count_num=IntVar()#创建一个Intvar变量
        self.count_num.set(a)#初始化计数器为输入的倒计时数

        lable=Label(self,textvariable=self.count_num,font=('Arial Bold',50))
        lable.pack(side='left',padx=5,pady=5,fill='both',expand='yes')

        bth=Button(self,text='你点点看',bg='#1AA7Ec',fg='white')
        bth.pack(side='right',pady=5,ipadx=5,fill='y',anchor='center')
        bth.bind(sequence='<Button-1>',func=self.button_on)


    def button_on(self,evt):

            self.count_num.set(self.count_num.get()+1)


            #time.sleep(2)
            #self.destroy()

if __name__=='__main__':
    a = int(input("请输入计数器的初始值:"))#定义全局变量a,用于保存计数
    app=MyApp()
    app.mainloop()

 3、解析

 三、变装为倒计时器

1、效果

 

 2、代码

from tkinter import  *
import time

class MyApp(Tk):

    def __init__(self):
        super().__init__()
        self.title('这是一个倒计时器')#设置标题
        self.geometry('480x160')#设置画布大小
        self.iconbitmap('res\Tk.ico')#设置应用图标

        self.count_num=IntVar()#创建一个Intvar变量
        self.count_num.set(a)#初始化计数器为输入的倒计时数

        lable=Label(self,textvariable=self.count_num,font=('Arial Bold',50))
        lable.pack(side='left',padx=5,pady=5,fill='both',expand='yes')

        bth=Button(self,text='你点点看',bg='#1AA7Ec',fg='white')
        bth.pack(side='right',pady=5,ipadx=5,fill='y',anchor='center')
        bth.bind(sequence='<Button-1>',func=self.button_on)#Button-1为鼠标左键单击事件


    def button_on(self,evt):
        global a

        if a>0:
            self.count_num.set(self.count_num.get()-1)
            print(a)
            a=a-1

        else:
            self.count_num.set('倒计时结束')
            print('倒计时结束!!')
            #self.sleep()
            #self.destroy()

if __name__=='__main__':
    a = int(input("请输入倒计时的数字:"))#定义全局变量a,用于保存计时数
    app=MyApp()
    app.mainloop()

 3、解析

        上面计数器都是每次加1,我想当然也能每次减1了,比如我们比赛,放PPT开场的时候都会用到倒计时器,计数器好像可以用来较崽崽,学习1-100,学会1,然后点一下教他学2。修改后的关键代码在button_on函数中。记得在引用全局变量a的时候记得,加上global。

 四、总结

        好的,今天分享就到这里,我们在学习的时候,可以举一反三,这样我们就会觉得学习突然有趣了起来,希望日进尺步,步步高。祝好,有不懂的欢迎留言讨论。或者直接私信我~

TkinterPython的一个标准GUI库,可以用于创建图形用户界面。计时器是一种常见的功能,在Tkinter中可以通过使用`after`方法来实现。 首先,你需要导入Tkinter库并创建一个窗口对象。然后,你可以使用`Label`组件来显示计时器的时间。接下来,你可以定义一个函数来更新计时器的时间,并使用`after`方法在一定的时间间隔后调用该函数。最后,你需要使用`mainloop`方法来启动窗口的事件循环。 下面是一个简单的示例代码,演示了如何创建一个基本的计时器: ```python import tkinter as tk def update_timer(): # 更新计时器的时间 current_time = label['text'] minutes, seconds = map(int, current_time.split(':')) if seconds < 59: seconds += 1 else: seconds = 0 minutes += 1 label['text'] = f'{minutes:02d}:{seconds:02d}' # 每秒更新一次计时器 label.after(1000, update_timer) # 创建窗口对象 window = tk.Tk() # 创建Label组件用于显示计时器的时间 label = tk.Label(window, text='00:00', font=('Arial', 24)) label.pack() # 启动计时器 update_timer() # 启动窗口的事件循环 window.mainloop() ``` 这个示例代码创建了一个窗口,并在窗口中显示一个初始时间为00:00的Label组件。然后,通过调用`update_timer`函数来更新计时器的时间,并使用`after`方法每秒钟调用一次该函数。最后,通过调用`mainloop`方法来启动窗口的事件循环,使计时器能够正常工作。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

他们叫我技术总监

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值