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类型,还有许多类型再此就不一一写出了。
源码地址:源码