手把手带你用Python实现一个计时器
概述
计时器是一种简单但实用的工具,经常被用于各种场景中,例如测量时间,限时倒计时等。在本文中,我们将通过Python编写一个小型的计时器程序,并介绍截止到2021年目前流行的一些Python开发库。这个计时器程序能够实现计时和倒计时功能,可以自由选择计时或倒计时,设定开始时间和时长,最终以图形化界面显示时间和计时器状态。
开发环境
- Windows 10 操作系统
- Python 3.7+
步骤
安装需要的 Python 库
在开始之前,需要安装如下Python库:
- tkinter,常用的GUI工具集,用于构建计时器的界面
- time,提供了与时间相关的函数
- datetime,提供了与日期和时间相关的函数
- threading,用于创建多线程程序
- winsound,用于播放音乐
这些库可以通过pip命令行工具进行安装:
pip install tkinter time datetime threading winsound
实现计时器程序
编写Python代码,实现计时器程序。以下是程序主体代码,部分代码已省略。您可以将以下完整代码复制并粘贴到您的编辑器中。
import tkinter as tk
import time
import threading
import datetime
import winsound
class Counter:
def __init__(self):
self.root = tk.Tk()
self.root.geometry("400x200")
self.root.title("计时器")
self.time_label = tk.Label(self.root, font=('Arial', 36), text="00:00:00")
self.time_label.place(x=40, y=40)
self.countdown_label = tk.Label(self.root, font=('Arial', 24), text="")
self.countdown_label.place(x=45, y=100)
self.time_entry = tk.Entry(self.root, font=('Arial', 18), width=8)
self.time_entry.place(x=250, y=40)
self.start_btn = tk.Button(self.root, text="开始", font=('Arial', 16), command=self.start)
self.start_btn.place(x=100, y=150)
self.quit_btn = tk.Button(self.root, text="退出", font=('Arial', 16), command=self.quit)
self.quit_btn.place(x=250, y=150)
self.flag = True
self.total_time = 0
self.init_time = None
self.mode = ''
def start(self):
self.init_time = datetime.datetime.now()
if not self.mode:
self.total_time = int(self.time_entry.get())
self.mode = 'countdown'
threading.Thread(target=self.countdown, ).start()
else:
self.flag = False
def countdown(self):
while self.total_time >= 0 and self.flag:
time.sleep(1)
self.total_time -= 1
target_time = datetime.datetime.now() + datetime.timedelta(seconds=self.total_time)
self.time_label.configure(text=target_time.strftime("%H:%M:%S"))
if self.total_time == 0:
self.stop()
def stop(self):
self.flag = False
self.mode = ''
winsound.Beep(1000, 1000)
def quit(self):
self.root.destroy()
if __name__ == '__main__':
Counter().root.mainloop()
运行程序并测试
运行程序并测试计时器功能是否正常。
以下是两种使用示例:
-
做一个30秒的倒计时:
在计时器中输入 30,点击开始按键,计时器开始倒计时,倒计时数值和当前时间实时更新。当倒计时结束且时间到达0时,会自动停止并发出警报声。
-
启动一个计时器并查看时间过去了多长时间:
在计时器中不输入时长,点击开始按键,计时器会对时间进行计时,计时数值和当前时间实时更新。如果需要停止计时,可以再次点击开始按键并关闭窗口。
至此,一个简单的计时器程序就已经实现了。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:手把手带你用Python实现一个计时器 - Python技术站