Python项目——时钟显示

文章介绍了Tkinter作为Python内置的GUI库,用于创建图形用户界面。它提供了基础的控件和组件,通过简单的代码即可实现功能。文中给出的时钟例程展示了如何创建一个能显示时间并可切换到显示日期的窗口应用,利用Tkinter的after方法实现每秒更新时间或日期的功能。
摘要由CSDN通过智能技术生成

时钟显示

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qq_755682240

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值