初级python代码编程学习----简单的图形化闹钟小程序

devtools/2024/12/23 3:56:19/

              我们来创建一个简单的图形化闹钟程序通常需要使用图形用户界面(GUI)库。以下是使用Python的Tkinter库创建一个基本闹钟程序的步骤:

环境准备

  1. 确保已安装Python。
  2. 安装Tkinter库(Python 3.8及以上版本自带Tkinter,无需额外安装)。

编写代码

以下是一个简单的闹钟程序示例:

import tkinter as tk
from datetime import datetime, timedelta
import time

class AlarmClock:
    def __init__(self, master):
        self.master = master
        master.title("图形化闹钟")

        self.label = tk.Label(master, text="", font=('Helvetica', 40))
        self.label.pack()

        self.set_alarm_button = tk.Button(master, text="设置闹钟", command=self.set_alarm)
        self.set_alarm_button.pack()

        self.alarm_time = None

    def set_alarm(self):
        now = datetime.now().strftime('%H:%M:%S')
        self.alarm_time = datetime.strptime(now, '%H:%M:%S') + timedelta(seconds=60)  # 闹钟设置为一分钟后
        self.update_label()

    def update_label(self):
        now = datetime.now()
        if now >= self.alarm_time:
            self.label.config(text="闹钟响了!")
        else:
            seconds_remaining = (self.alarm_time - now).total_seconds()
            minutes, seconds = divmod(seconds_remaining, 60)
            time_string = f"{int(minutes):02d}:{int(seconds):02d}"
            self.label.config(text=time_string)
        
        self.master.after(1000, self.update_label)

if __name__ == "__main__":
    root = tk.Tk()
    alarm_clock = AlarmClock(root)
    root.mainloop()

 

源代码

import tkinter as tk
from datetime import datetime, timedelta
import timeclass AlarmClock:def __init__(self, master):self.master = mastermaster.title("图形化闹钟")self.label = tk.Label(master, text="", font=('Helvetica', 40))self.label.pack()self.set_alarm_button = tk.Button(master, text="设置闹钟", command=self.set_alarm)self.set_alarm_button.pack()self.alarm_time = Nonedef set_alarm(self):now = datetime.now().strftime('%H:%M:%S')self.alarm_time = datetime.strptime(now, '%H:%M:%S') + timedelta(seconds=60)  # 闹钟设置为一分钟后self.update_label()def update_label(self):now = datetime.now()if now >= self.alarm_time:self.label.config(text="闹钟响了!")else:seconds_remaining = (self.alarm_time - now).total_seconds()minutes, seconds = divmod(seconds_remaining, 60)time_string = f"{int(minutes):02d}:{int(seconds):02d}"self.label.config(text=time_string)self.master.after(1000, self.update_label)if __name__ == "__main__":root = tk.Tk()alarm_clock = AlarmClock(root)root.mainloop()

保存为.py文件。例如123.py

然后在Python环境下运行它。例如

Python 123.py

效果


http://www.ppmy.cn/devtools/97861.html

相关文章

flink环境搭建

Flink会话模式 1.集群规划: 2. 将flink拖到/opt/so下 3. 将安装包解压到/opt/module下: tar -zxvf /opt/so/flink-1.15.4-bin-scala_2.12.tgz -C /opt/module 4. 改个名:mv flink-1.15.4 flink 5. 修改配置文件:cd /opt/mo…

win10蓝牙只能发送,无法接收

给win10升了级,到22H2,蓝牙出了问题 以前接收,就是默认直接就可以接收。现在只能发送,无法接收。 在网上找了很多办法都没奏效,目前的方法是, 每次接收,都要操作一次,而不是自动接…

macOS symbol(s) not found for architecture arm64错误原因总结

背景 环境: macOS 14MacBook Pro M3 正文 在macOS上进行C开发,有时会遇到以下报错: Undefined symbols for architecture arm64:"CameraRawWidget::eventFilter(QObject*, QEvent*)", referenced from:vtable for CameraRawWi…

探索Ruby在物联网世界的无限可能:智能连接与创新应用

标题: 探索Ruby在物联网世界的无限可能:智能连接与创新应用 摘要: 物联网(IoT)正在迅速改变我们与物理世界的互动方式。Ruby,作为一种灵活且富有表现力的编程语言,为物联网应用提供了独特的解决…

Day29 不同主机之间的网络通信学习

IPC 进程间通信方式 共享内存 //最高效的进程间通信方式 共享内存: 1.是一块,内核预留的空间 2.最高效的通信方式 //避免了用户空间 到 内核空间的数据拷贝 IPC通信方式 ---操作流程类似的 操作: system v : …

linux被植入木马排查思路

linux被植入木马排查思路 一、是否侵入检查 1)检查系统登录日志 last命令 2)检查系统用户 1、检查是否有异常用户 cat /etc/passwd 2、查看是否产生了新用户、uid和gid为0的用户 grep "0" /etc/passwd 3、查看passwd的修改时间&#xf…

设计模式-访问器模式

概述 访问器模式是一种常见的的设计模式,主要是设计封装对对象的访问,可以将对对象的操作封装在一个方法中,灵活的控制对变量的修改,处理对应的逻辑,在C#中有对应的getset访问器,可以封装对属性的访问和写…

新媒体智能化与定制开发 AI 智能名片小程序在工业 4.0 中的作用

摘要:本文探讨了新媒体作为客体所具有的智能以及在工业 4.0 进程中的重要性。分析了人赋予新媒体的四个方面智能,包括感知智能、运算智能、认知智能和智慧行为。同时,结合定制开发 AI 智能名片小程序这一具体案例,阐述了新媒体在工…