📜  在Python中使用Tkinter创建秒表

📅  最后修改于: 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()

输出: