Python项目——时钟显示

时钟显示

1.1、Tkinter是什么?

        Tkinter是Python自带的GUI库,Python的IDEL就是Tkinter的应用实例。Tkinter可以看作是Tk和inter的合体。词根inter之意不言自明,而Tk则是工具控制语言Tcl(Tool Command Language)的一个图形工具箱的扩展,它提供各种标准的GUI接口。和其他GUI库相比,Tkinter有一个与生俱来的优势:无需安装就可以直接使用。当然,也有很多人——曾经我也是其中之一,认为这恰是Tkinter的唯一优点。不过,后来我改变了看法。相较于wx或Qt多如牛毛的控件和组件,Tk只用十几个控件就可以满足几乎所有的应用需求,用最低的学习成本、最简单的方式解决问题,这不正是实用至上主义的典范吗?

1.2、Tkinter的组织架构

        Tkinter模块提供了一个名为Tk的窗体类、十几个基本控件,多个类型对象,若干常量,以及一个可选主题的控件包ttk和各种对话框组件。可以把ttk理解为增强的控件包,它提供了更多、更美观的控件。Tkinter模块的组织架构如下图所示。

在这里插入图片描述

2、时钟例程

from tkinter import *
import time

class App:
    def __init__(self, master):
        self.master = master
        self.current_window = "time"  # 默认界面1,显示时间
        self.create_widgets()

    def create_widgets(self):
        # 切换按钮
        self.switch_button = Button(self.master, text="Switch", command=self.switch_windows)
        self.switch_button.pack()

        # 界面1:显示时间
        self.time_label = Label(self.master, text="", font=("Arial", 95), fg="white", bg="black")
        self.time_label.pack(fill=BOTH, expand=True)

        # 界面2:显示日期
        self.date_label = Label(self.master, text="", font=("Arial", 65), fg="white", bg="black")
        self.date_label.pack(fill=BOTH, expand=True)



        # 刷新时间和日期
        self.update_datetime()

    def update_datetime(self):
        if self.current_window == "time":
            # 更新时间
            current_time = time.strftime("%H:%M:%S")
            self.time_label.config(text=current_time)
            self.master.after(1000, self.update_datetime)  # 每秒钟更新一次时间

        elif self.current_window == "date":
            # 更新日期
            current_date = time.strftime("%Y-%m-%d")
            self.date_label.config(text=current_date)
            self.master.after(1000, self.update_datetime)  # 每秒钟更新一次日期

    def switch_windows(self):
        if self.current_window == "time":
            # 切换到界面2
            self.time_label.pack_forget()
            self.date_label.pack(fill=BOTH, expand=True)
            self.current_window = "date"
        elif self.current_window == "date":
            # 切换到界面1
            self.date_label.pack_forget()
            self.time_label.pack(fill=BOTH, expand=True)
            self.current_window = "time"

root = Tk()
root.geometry("500x180")
root.title("Window Example")
app = App(root)
root.mainloop()

参考链接:http://t.csdn.cn/NLhjq

你可能感兴趣的:(Python,python,开发语言)