📅  最后修改于: 2020-05-02 07:32:09             🧑  作者: Mango
本文重点介绍在Python中使用Tkinter创建秒表.
Tkinter :Tkinter是Python的标准GUI库。 Python与Tkinter结合使用时,提供了一种快速简便的方法来创建GUI应用程序。 Tkinter为Tk GUI工具包提供了强大的面向对象的界面。 开始使用Tkinter非常容易,这里有一些示例代码可帮助您使用Python来使用Tkinter。
# Python程序使用Tkinter创建一个新窗口
# 导入所需的书库
import tkinter
# 创建对象“ top"作为类Tk的实例
top = tkinter.Tk()
# 这将启动空白窗口
top.mainloop()
输出:
使用Tkinter创建秒表
现在让我们尝试使用Tkinter模块创建程序来创建秒表。
秒表是一种手持式钟表,设计用于测量从启动时间到关闭该表的时间所经过的时间。 秒表的大型数字版本,例如在体育馆中,可以远距离观看,称为秒表。 在手动计时中,时钟由人按下按钮启动和停止。 在全自动时间内,启动和停止均由传感器自动触发。
所需模块:我们将仅使用tkinter来创建gui,并且此程序中将不使用其他任何库。
# 使用Tkinter演示秒表的Python程序
# 导入所需的库
import tkinter as Tkinter import tkinter as Tkinter
counter = 1
running = False
def counter_label(label):
def count():
if running:
global counter
# 管理初始延迟.
if counter = = 1 :
display = "Starting..."
else :
display = str (counter)
label[ 'text' ] = display # Or label.config(text=display)
# label.after(arg1,arg2)延迟以毫秒为单位的第一个参数,然后调用作为第二个参数的函数.
# 通常像这里一样,我们需要调用其中重复出现的函数.
# 延迟1000毫秒= 1秒,然后再次进行计数.
label.after( 1000 , count)
counter + = 1
# 触发计数器的开始.
count()
# 秒表的启动功能
def Start(label):
global running
running = True
counter_label(label)
start[ 'state' ] = 'disabled'
stop[ 'state' ] = 'normal'
reset[ 'state' ] = 'normal'
# 秒表的停止功能
def Stop():
global running
start[ 'state' ] = 'normal'
stop[ 'state' ] = 'disabled'
reset[ 'state' ] = 'normal'
running = False
# 秒表的重置功能
def Reset(label):
global counter
counter = 1
# 如果按停止后按了休息.
if running = = False :
reset[ 'state' ] = 'disabled'
label[ 'text' ] = 'Welcome!'
# 如果秒表在运行时按复位键.
else :
label[ 'text' ] = 'Starting...'
root = Tkinter.Tk()
root.title( "Stopwatch" )
# 固定窗口大小.
root.minsize(width = 250 , height = 70 )
label = Tkinter.Label(root, text = "Welcome!" , fg = "black" , font = "Verdana 30 bold" )
label.pack()
start = Tkinter.Button(root, text = 'Start' ,
width = 15 , command = lambda :Start(label))
stop = Tkinter.Button(root, text = 'Stop' ,
width = 15 , state = 'disabled' , command = Stop)
reset = Tkinter.Button(root, text = 'Reset' ,
width = 15 , state = 'disabled' , command = lambda :Reset(label))
start.pack()
stop.pack()
reset.pack()
root.mainloop()
输出: