📜  使用 Tkinter 创建闹钟(1)

📅  最后修改于: 2023-12-03 14:49:47.220000             🧑  作者: Mango

使用 Tkinter 创建闹钟

在 Python 中,我们可以使用 Tkinter 模块来创建窗口应用程序。在本文中,我们将介绍如何使用 Tkinter 模块来创建一个简单的闹钟应用程序。

安装 Tkinter

在使用 Tkinter 之前,需要确保你已经安装了 Python。如果你是使用 Python 3.x 的版本,则应该已经自带了 Tkinter 模块。如果你是使用 Python 2.x 的版本,则需要额外安装 Tkinter 模块:

sudo apt-get install python-tk
创建窗口应用程序

首先,我们要导入 Tkinter 模块并创建一个窗口应用程序:

import tkinter as tk

root = tk.Tk()
root.title("闹钟")

tkinter as tk 表示将 Tkinter 模块重命名为 tk。tk.Tk() 创建了一个窗口对象,root.title 则用来设置窗口标题。现在我们已经创建了一个窗口应用程序,但是它还是一个空白窗口。

添加界面元素

下一步,我们要向窗口中添加一些界面元素,例如标签、文本框、按钮等。以下是一个简单的界面:

time_var = tk.StringVar()
time_var.set("00:00")
time_label = tk.Label(root, textvariable=time_var, font=("Arial", 100))
time_label.pack()

def update_time():
    # 获取当前时间,并将其格式化为 hh:mm
    current_time = time.strftime("%H:%M")
  
    # 更新标签中的文本
    time_var.set(current_time)
  
    # 每 500 毫秒更新一次时间
    root.after(500, update_time)

update_time()
root.mainloop()

以上代码实现了显示当前时间的功能,并且每隔 500 毫秒自动更新一次时间。其中,tk.StringVar 表示一个可变的文本变量,tk.Label 则表示一个标签(Label)对象。time.strftime 函数用于格式化时间。

创建闹钟

现在我们已经可以显示当前时间了,接下来我们要添加创建闹钟的功能。以下是代码片段:

alarm_time = tk.StringVar()

alarm_label = tk.Label(root, text="设定闹钟:(hh:mm)")
alarm_label.pack()

alarm_entry = tk.Entry(root, textvariable=alarm_time, font=("Arial", 24))
alarm_entry.pack()

def check_alarm():
    current_time = time.strftime("%H:%M")
    if current_time == alarm_time.get():
        messagebox.showinfo("闹钟", "时间到!")

alarm_button = tk.Button(root, text="设置闹钟", command=check_alarm)
alarm_button.pack()

以上代码实现了创建闹钟的功能。tk.Entry 表示一个单行文本框(Entry)对象,alarm_time.get() 则是获取文本框中的文本。tk.Button 表示一个按钮(Button)对象,command 属性则用于指定按钮被点击时所调用的函数。

总结

到目前为止,我们已经实现了一个简单的闹钟应用程序。完整代码示例见下:

import tkinter as tk
from tkinter import messagebox
import time

root = tk.Tk()
root.title("闹钟")

time_var = tk.StringVar()
time_var.set("00:00")
time_label = tk.Label(root, textvariable=time_var, font=("Arial", 100))
time_label.pack()

def update_time():
    current_time = time.strftime("%H:%M")
    time_var.set(current_time)
    root.after(500, update_time)

update_time()

alarm_time = tk.StringVar()

alarm_label = tk.Label(root, text="设定闹钟:(hh:mm)")
alarm_label.pack()

alarm_entry = tk.Entry(root, textvariable=alarm_time, font=("Arial", 24))
alarm_entry.pack()

def check_alarm():
    current_time = time.strftime("%H:%M")
    if current_time == alarm_time.get():
        messagebox.showinfo("闹钟", "时间到!")

alarm_button = tk.Button(root, text="设置闹钟", command=check_alarm)
alarm_button.pack()

root.mainloop()

参考文献: