📅  最后修改于: 2023-12-03 15:08:56.780000             🧑  作者: Mango
在本文中,我们将介绍如何在Python中制作一个秒表。秒表是一个常见的计时器,常用于计算体育比赛和其他计时活动的时间。
在本项目中,我们用到了两个库:
下面是所需的Python代码:
import time
import tkinter as tk
class StopWatch(tk.Frame):
def __init__(self, master=None):
super().__init__(master)
self.ms = 0
self.sec = 0
self.min = 0
self.running = False
self.create_widgets()
self.pack()
def create_widgets(self):
self.time_label = tk.Label(self, text="00:00.000", font=("Helvetica", 24))
self.start_button = tk.Button(self, text="Start", command=self.start_watch)
self.stop_button = tk.Button(self, text="Stop", command=self.stop_watch)
self.reset_button = tk.Button(self, text="Reset", command=self.reset_watch)
self.time_label.pack(side="top", fill="x", padx=5, pady=5)
self.start_button.pack(side="left", padx=5, pady=5)
self.stop_button.pack(side="left", padx=5, pady=5)
self.reset_button.pack(side="left", padx=5, pady=5)
def start_watch(self):
self.running = True
self.watch()
def stop_watch(self):
self.running = False
def reset_watch(self):
self.running = False
self.ms = 0
self.sec = 0
self.min = 0
self.update_time()
def watch(self):
if self.running:
self.ms += 1
if self.ms >= 1000:
self.sec += 1
self.ms = 0
if self.sec >= 60:
self.min += 1
self.sec = 0
self.update_time()
self.after(1, self.watch)
def update_time(self):
self.time_label.config(text=f"{self.format_time(self.min)}:{self.format_time(self.sec)}.{self.format_time(self.ms)}")
@staticmethod
def format_time(time_val):
return f"{time_val:02d}"
root = tk.Tk()
root.title("Stop Watch")
sw = StopWatch(master=root)
sw.mainloop()
代码中使用面向对象编程来制作一个秒表,其继承了tk.Frame
来创建GUI,并且有start_watch()
、stop_watch()
、reset_watch()
和watch()
等方法来控制秒表。在create_widgets()
中,我们创建了一个tk.Label
用于显示时间,使用三个tk.Button
来启动、停止和重置秒表。
在start_watch()
中,我们将self.running
的值设置为True
,并且启动计时器。watch()
方法用来更新时间。stop_watch()
和reset_watch()
方法分别用来停止和重置秒表的值和时间标签。format_time()
方法则将给定的一个时间格式化成字符串。
运行代码后,可以看到一个秒表窗口。你可以点击“Start”按钮开始计时,用“Stop”按钮停止计时,或者用“Reset”按钮重置计时值和时间标签。
这就是制作一个秒表的所有代码,你可以将此代码用作Python学习的参考。如果你想自己动手制作一个秒表,你可以尝试添加其他功能,如计圈、计时器音效等。Happy coding!