tkinter学习之计时及取消

本文介绍了一个使用Python的Tkinter库实现的简单计时器应用程序。该程序包含一个不断递增的计数器和一个可以暂停计数的按钮。通过after_cancel方法实现了暂停功能,并展示了如何使用全局变量和after方法来控制计数过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

import tkinter as tk
 
counter = 0 
def counter_label(label):
  def count():
    global counter
    global s
    counter += 1
    label.config(text=str(counter))
    s=label.after(1000, count)
  count()
 
def stop():
	'''停止计数'''
	label.after_cancel(s)
root = tk.Tk()
root.title("Counting Seconds")
label = tk.Label(root, fg="green")
label.pack()
counter_label(label)
button = tk.Button(root, text='Stop', width=25, command=stop,relief=tk.GROOVE)
button.pack()
'''按钮另一种写法'''
quit = tk.Button(root)
quit['text']='退出'
quit['command']=root.quit
quit.pack()

root.mainloop()

先说说想法,之前看网络上翻译的tkinter简易教程发现有个技术的例子,发现如果停止计数只有退出窗口,没有停止功能,后来查看一些资料需要用到after_cancel(id),id是after打印出的数据,打印结果如下

after#0
after#1
after#2

思路想办法传给after_cancel,label没有get(),所以用global s。

控件有几写法,参照代码里的button和quit。

button:按钮常用属性

text按钮显示名称
bg背景颜色
command按钮动作,封装好的函数如例子里的stop
relief按钮样式
width
height

除以上几种button类型,还有许多类型再此就不一一写出了。
源码地址:
源码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值