本章内容主要是利用python制作一个简单的桌面倒计时程序,包含开始、重置 、设置功能。
目录

- #!/usr/bin/python
- # -*- coding: UTF-8 -*-
- """
- @author: Roc-xb
- """
-
- import tkinter as tk
- from tkinter import simpledialog
- from tkinter import messagebox
-
- class CountdownTimer:
- def __init__(self, root):
- self.root = root
- self.root.title("倒计时程序")
- self.root.geometry("450x300")
-
- self.countdown_value = 60
- self.is_counting = False
-
- self.canvas = tk.Canvas(self.root, width=200, height=200, bg="white")
- self.canvas.place(x=20, y=20)
-
- self.countdown_label = tk.Label(self.root, text="倒计时: 60s", font=("Arial", 20))
- self.countdown_label.place(x=250, y=20)
-
- self.start_button = tk.Button(self.root, text="开始", command=self.start_countdown)
- self.start_button.place(x=250, y=70)
-
- self.reset_button = tk.Button(self.root, text="重置", command=self.reset_countdown)
- self.reset_button.place(x=250, y=120)
-
- self.set_button = tk.Button(self.root, text="设置", command=self.set_countdown)
- self.set_button.place(x=250, y=170)
-
- def start_countdown(self):
- if self.is_counting:
- return
-
- self.is_counting = True
- self.countdown()
-
- def countdown(self):
- if self.countdown_value > 0 and self.is_counting is True:
- self.countdown_value -= 1
- self.countdown_label.config(text="倒计时: " + str(self.countdown_value) + "s")
- self.canvas.delete("all")
- self.canvas.create_rectangle(0, 200 - self.countdown_value * 2, 200, 300, fill="green")
- self.root.after(1000, self.countdown)
- elif self.countdown_value > 0 and self.is_counting is False:
- self.canvas.delete("all")
- self.is_counting = False
- return
- else:
- self.is_counting = False
- messagebox.showinfo("提示", "倒计时结束")
-
- def reset_countdown(self):
- self.is_counting = False
- self.countdown_value = 60
- self.countdown_label.config(text="倒计时: " + str(self.countdown_value) + "s")
- self.canvas.delete("all")
-
- def set_countdown(self):
- if self.is_counting:
- return
-
- value = tk.simpledialog.askinteger("设置倒计时", "请输入倒计时时间(秒):", parent=self.root)
- if value is not None:
- self.countdown_value = value
- self.countdown_label.config(text="倒计时: " + str(self.countdown_value) + "s")
- self.canvas.delete("all")
-
-
- if __name__ == '__main__':
- root = tk.Tk()
- app = CountdownTimer(root)
- root.mainloop()