灵码做闹钟

简介: 【7月更文挑战第23天】

image.png

体验地址

import tkinter as tk
from tkinter import messagebox
import time
import threading

def update_clock():
    """更新时钟显示"""
    current_time = time.strftime("%H:%M:%S")
    clock_label.config(text=current_time)
    root.after(1000, update_clock)  # 每秒更新一次

def start_timer():
    """启动定时器"""
    try:
        seconds = int(timer_entry.get())
        if seconds <= 0:
            raise ValueError("Time must be positive.")
        messagebox.showinfo("Timer Started", f"Timer set for {seconds} seconds.")

        def countdown():
            """倒计时函数"""
            nonlocal seconds
            while seconds > 0:
                minutes, secs = divmod(seconds, 60)
                timer_label.config(text=f"{minutes:02d}:{secs:02d}")
                root.update()
                time.sleep(1)
                seconds -= 1
            messagebox.showinfo("Timer Ended", "Time's up!")

        # 在新线程中启动倒计时,避免阻塞GUI
        threading.Thread(target=countdown).start()
    except ValueError:
        messagebox.showerror("Invalid Input", "Please enter a valid number of seconds.")

# 创建主窗口
root = tk.Tk()
root.title("Digital Clock with Timer")

# 创建时钟显示
clock_label = tk.Label(root, font=("Arial", 48), bg="black", fg="white")
clock_label.pack(fill=tk.BOTH, expand=1)

# 创建定时器输入框和按钮
timer_frame = tk.Frame(root)
timer_frame.pack(pady=10)

timer_label = tk.Label(timer_frame, text="00:00", font=("Arial", 24))
timer_label.pack(side=tk.LEFT)

timer_entry = tk.Entry(timer_frame, width=5)
timer_entry.pack(side=tk.LEFT)

timer_button = tk.Button(timer_frame, text="Start Timer", command=start_timer)
timer_button.pack(side=tk.LEFT)

# 启动时钟更新
update_clock()

# 运行主循环
root.mainloop()

这段代码使用tkinter库创建了一个带有数字时钟和定时器功能的GUI应用程序。

update_clock函数用于更新时钟的显示,通过调用time.strftime函数获取当前时间,并将其设置为时钟标签的文本。然后使用root.after方法安排下一秒再次调用update_clock函数,实现每秒更新一次时钟。

start_timer函数用于启动定时器。首先,它从定时器输入框中获取用户输入的秒数,并进行类型转换和合法性检查。如果输入无效(非正整数),则弹出错误消息框。否则,弹出确认消息框,告知用户定时器已设置为指定的秒数。

在start_timer函数内部定义了一个countdown内嵌函数,用于执行倒计时逻辑。倒计时过程中,通过divmod函数计算剩余时间的分钟和秒数,并将其格式化后设置为定时器标签的文本。然后使用root.update方法更新GUI界面,避免阻塞。接着调用time.sleep函数暂停1秒,再减去1秒的计时,直到剩余时间为0,倒计时结束。

start_timer函数使用threading.Thread创建一个新的线程,在该线程中执行countdown函数,以避免阻塞GUI界面的更新。

主程序创建了一个主窗口,并设置标题为"Digital Clock with Timer"。然后创建了一个时钟标签用于显示当前时间,以及一个定时器框架,包含一个定时器标签用于显示倒计时时间,一个输入框用于输入定时器的秒数,和一个按钮用于启动定时器。最后调用update_clock函数启动时钟更新,并运行主循环。

目录
相关文章
|
7月前
|
人工智能 自然语言处理 UED
通义听悟上线音视频问答助手
【2月更文挑战第30天】阿里巴巴“通义听悟”推出音视频问答助手“小悟”,能理解6小时内容,提供精准问答,适用于学术、会议、教育场景。此外,还具有一键AI改写、思维导图生成功能,优化笔记体验,支持多语种自动识别。已吸引百万用户,日处理字符数达20亿。但可能在专业术语理解及用户体验上存在挑战。
99 3
通义听悟上线音视频问答助手
|
自然语言处理 算法 测试技术
实测通义灵码:解锁智能编程的钥匙
写了5个小时的文章,认真的把通义灵码从头到尾玩了一遍,整体来说还是很惊喜的,根据此次不完整的测评,我个人感受可以给通义灵码打到 3.5~4 分之间(满分5分),我觉得这也算是一个很中肯的评价了,具体测试的过程都在本文中有详细列出,希望能和大家一起分享一起学习。本文为原创,未经许可请勿搬运。
360557 17
实测通义灵码:解锁智能编程的钥匙
|
自然语言处理 IDE 测试技术
通义灵码全面公测,阿里云工程师人手一编码助手
通义灵码,是阿里云出品的一款基于通义大模型的智能编码辅助工具,提供行级/函数级实时续写、自然语言生成代码、单元测试生成、代码注释生成、代码解释、研发智能问答、异常报错排查等能力,并针对阿里云 SDK/OpenAPI 的使用场景调优,助力开发者编码。 通义灵码是一款基于阿里云通义代码大模型打造的智能编码助手,基于海量优秀开源代码数据集和编程教科书训练,可根据当前代码文件及跨文件的上下文,自动生成行级/函数级代码、单元测试、代码注释等,此外还具备代码解释、智能研发问答、异常报错排查等能力,并针对阿里云 SDK/OpenAPI 使用场景调优,为开发者带来高效、流畅的编码体验。
1240 0
|
12天前
|
人工智能 自然语言处理 前端开发
100个降噪蓝牙耳机免费领,用通义灵码从 0 开始打造一个完整APP
打开手机,录制下你完成的代码效果,发布到你的社交媒体,前 100 个@玺哥超Carry、@通义灵码的粉丝,可以免费获得一个降噪蓝牙耳机。
5342 14
|
5天前
初次体验通义灵码有感
初次体验通义,待工具越来越完善,原来需要自己做的事情会越来越少,开发也会变得更加简单
|
6天前
|
人工智能 自然语言处理
完成 100个降噪蓝牙耳机免费领,用通义灵码从 0 开始打造一个完整APP
通义灵码 打造全网第一个完整的、面向普通人的自然语言编程教程。完全使用 AI,再配合简单易懂的方法,只要你会打字,就能真正做出一个完整的应用。
60 2
第一次体验通义灵码,效果不错
该应用包含首页、主页、内容发布页面和内容详情页面等主要界面,设计简洁明快,功能布局合理,旨在为用户提供流畅的内容浏览与发布体验。@玺哥超Carry@通义灵码
|
28天前
|
IDE 架构师 测试技术
通义灵码体验反馈
作为一名系统架构师,我试用了通义灵码个人版,发现其显著提升了开发效率,整体提效达30%。具体流程包括在VSCode中安装插件、登录阿里云账号、使用灵码进行代码解释、注释、优化及单元测试等。灵码在代码生成速度、质量及解释方面表现出色,但在账号登录和默认注释语言方面仍有优化空间。
75 3
|
2月前
|
人工智能 自然语言处理 程序员
通义灵码体验分享
如果你也是一名程序员,我强烈推荐你试试通义灵码。它不仅能够帮你提高开发效率,还能够给你带来全新的编程体验。让我们一起迎接AI编程助手带来的无限可能吧!
67 0