使用TKINTER和PYGAME构建时间跟踪应用程序

使用tkinter和pygame构建时间跟踪应用程序

Python时间跟踪应用开发指南:Tkinter与Pygame对比

Python提供了多种库来构建图形用户界面(GUI)的时间跟踪应用。本文将深入探讨如何使用Tkinter和Pygame这两个流行库来创建功能强大的时间跟踪器。Tkinter是Python的标准GUI库,易于学习和使用;而Pygame通常用于游戏开发,但也适用于其他交互式应用。

一、 使用Tkinter构建时间跟踪应用

准备工作: 确保已安装Python和Tkinter(大多数Python安装都包含Tkinter)。

创建主窗口: 导入Tkinter库并创建主窗口:

import tkinter as tkfrom tkinter import ttkimport timeroot = tk.Tk()root.title("时间跟踪器")

设计GUI: 添加必要的GUI组件,例如显示时间的标签和启动/停止按钮:

timer_label = ttk.Label(root, text="00:00:00", font=("segoe ui", 30))timer_label.pack(pady=20)start_button = ttk.Button(root, text="开始", command=start_timer)start_button.pack(side=tk.LEFT, padx=20)stop_button = ttk.Button(root, text="停止", command=stop_timer)stop_button.pack(side=tk.RIGHT, padx=20)

添加功能: 定义启动、停止和更新计时器的函数:

running = Falsestart_time = 0def update_timer():    if running:        elapsed_time = time.time() - start_time        minutes, seconds = divmod(int(elapsed_time), 60)        hours, minutes = divmod(minutes, 60)        timer_label.config(text=f"{hours:02}:{minutes:02}:{seconds:02}")        root.after(1000, update_timer)def start_timer():    global running, start_time    if not running:        running = True        start_time = time.time()        update_timer()def stop_timer():    global running, start_time    running = False    start_time = 0    timer_label.config(text="00:00:00")

主循环: 保持窗口运行并响应事件:

root.mainloop()

二、 使用Pygame构建时间跟踪应用

Pygame提供了更灵活的图形和动画控制,适合需要自定义视觉效果的应用。

安装和导入: 使用pip安装Pygame (pip install pygame),然后导入必要的模块:

import pygameimport sysfrom pygame.locals import *import time

初始化Pygame: 设置显示窗口和时钟:

pygame.init()fps_clock = pygame.time.Clock()width, height = 400, 200screen = pygame.display.set_mode((width, height))pygame.display.set_caption('时间跟踪器')

设置显示和字体: 定义颜色和字体:

black = (0, 0, 0)white = (255, 255, 255)font = pygame.font.Font(None, 36) # 使用默认字体

计时器逻辑: 与Tkinter类似,初始化计时器变量并定义计时器函数:

start_time = Noneelapsed_time = 0running = Falsedef start_timer():    global running, start_time    if not running:        running = True        start_time = time.time() - elapsed_timedef stop_timer():    global running, elapsed_time    if running:        running = False        elapsed_time = time.time() - start_time

主事件循环: 处理事件并更新显示:

fps = 60 # 设置帧率while True:    screen.fill(black)    for event in pygame.event.get():        if event.type == QUIT:            pygame.quit()            sys.exit()        elif event.type == KEYDOWN:            if event.key == K_s:                start_timer()            elif event.key == K_p:                stop_timer()    if running:        current_time = time.time()        elapsed_time = current_time - start_time        mins, secs = divmod(elapsed_time, 60)        hrs, mins = divmod(mins, 60)        time_string = "%d:%02d:%02d" % (hrs, mins, secs)    else:        mins, secs = divmod(elapsed_time, 60)        hrs, mins = divmod(mins, 60)        time_string = "%d:%02d:%02d" % (hrs, mins, secs)    time_text = font.render(time_string, True, white)    time_rect = time_text.get_rect(center=(width // 2, height // 2))    screen.blit(time_text, time_rect)    pygame.display.update()    fps_clock.tick(fps)

三、 结论

Tkinter和Pygame都可用于构建Python时间跟踪应用,选择哪个库取决于项目需求和开发者偏好。Tkinter更简洁易用,适合简单的GUI;Pygame则更灵活,适合需要更复杂图形和动画的应用。 本指南提供了两种方法的完整代码示例,方便读者根据自身需求选择合适的方案。

以上就是使用TKINTER和PYGAME构建时间跟踪应用程序的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1355886.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月13日 19:29:39
下一篇 2025年12月13日 19:29:47

相关推荐

  • ssential Python提示每个初学者都应该知道!

    Python初学者必备的五个实用技巧,助您轻松开启编程之旅! 列表推导式:简洁高效的代码 告别冗长的循环!使用列表推导式,轻松完成列表转换: nums = [1, 2, 3, 4, 5]squared = [x**2 for x in nums] # 结果:[1, 4, 9, 16, 25] 变量交…

    好文分享 2025年12月13日
    000
  • 与Python的设定理论简介

    集合是对象的集合。例如,设 1、2、3、4、a、b、c、$ 为对象。这些对象的集合为: s = {1, 2, 3, 4, ‘a’, ‘b’, ‘c’, ‘$’} s = {1, 2, 3, 4, ‘a’,…

    2025年12月13日
    000
  • 学习Python,Git和Git Hub

    我一直对编程充满热情,最终找到了机会付诸实践。在建筑行业工作了20多年后,我意识到是时候改变方向了。半退休后,我在网上搜索“远程工作”时发现了数据标注员的工作。经过评估后,我三天内就开始了这项工作。这份工作既有趣又令人满意,尤其是在学习JSON的过程中。这种简单的代码激发了我对Python的兴趣,因…

    2025年12月13日
    000
  • 分析异步Python

    介绍 应用程序分析是一个分析程序以确定其特征的过程:执行时间不同的代码零件和资源用法。 分析的主要阶段总是或多或少相同的: 测量执行时间。执行不同的代码零件需要多少时间?分析内存使用。程序的不同部分消耗了多少内存?识别瓶颈。代码的哪些部分减慢了程序或使用太多资源?>>性能优化。采取措施根…

    2025年12月13日 好文分享
    000
  • 在笔记本电脑上解锁DeepSeek RB – 体验我测试过的最聪明的AI模型!

    我原本对DeepSeek R1的性能预期不高,但实际测试7B DeepSeek模型(deepseek-ai/deepseek-r1-distill-qwen-7b)后,结果却令人惊喜。 这是一个利用Transformer模型生成用户查询回复的项目,它巧妙地结合了Hugging Face和Torch的…

    2025年12月13日
    000
  • 您应该避免使用python错误(以及如何修复它们!)

    Python易于上手,但即使是资深开发者也会掉进一些陷阱。本文列举六个常见的Python错误,并提供相应的解决方案。 1. 默认参数的可变性 错误代码: def add_item(item, my_list=[]): my_list.append(item) return my_listprint(…

    2025年12月13日
    000
  • 重新学习CompSci:二十一点在Python

    我曾经在大学的计算机实验室里花费无数时间学习各种编程语言,例如HTML、JavaScript、CSS和Python。 然而,我发现自己陷入了不断学习新教程的循环中,却缺乏对实际应用的深入理解。 仅仅复制粘贴网上的代码并不能真正提升我的编程能力。 后来,我开始全职工作,但对计算机科学的热情从未消退。 …

    2025年12月13日
    000
  • 编码在5中死了吗?

    人工智能(AI)和自动化技术的飞速发展引发了关于编程是否“消亡”的热议。2025年,各种标题和网络视频都在探讨这个问题:编程真的消亡了吗?答案是:非但没有消亡,反而在当今的技术生态系统中蓬勃发展。 编程的演变:从手工编写到AI辅助开发 与过去手工编写每一行代码相比,编程技术已经取得了长足进步。几十年…

    2025年12月13日
    000
  • 开源LLMS应该得到代码,而不是提示! (DSPY,瞧!)

    DSPY:将提示工程转变为提示编程的革命性框架 大型语言模型 (llm) 时代,新模型层出不穷。然而,充分发挥 llm 的潜力往往依赖于繁琐易错的提示工程。dspy 应运而生,它是一个开源框架,彻底改变了我们与 llm 交互的方式。dspy 将提示视为可训练、模块化的组件,而非静态文本,并通过编程方…

    2025年12月13日 好文分享
    000
  • 如何在Docker文件中从GCP Artifact注册表中安装Python软件包

    本文介绍如何使用docker构建镜像,并从gcp artifact registry安装私有python包,避免将敏感的服务帐户密钥直接放入镜像中。 您已开发一个内部使用的Python包,并希望将其发布到GCP Artifact Registry,而不是PyPI。 本文提供了一种安全的方案,避免在D…

    2025年12月13日
    000
  • python函数类型参数

    python 函数参数类型详解及示例 本文将详细讲解 Python 函数中不同类型的参数,并附带示例代码,帮助您更好地理解和运用这些参数类型。 位置参数 (Positional Arguments) 位置参数的值根据传递参数的顺序进行分配。参数的顺序必须与函数定义中的顺序一致。 立即学习“Pytho…

    2025年12月13日
    000
  • 开始为流行的开源项目做出贡献

    序幕 taipy是一个基于python的web框架,用于构建数据驱动的应用程序。开发者只需使用python即可创建web应用,这对于数据科学家和分析师尤其方便。taipy在github上拥有超过1.9k个fork和17.6万颗星,深受开发者欢迎。 我长期参与Taipy的贡献工作。我之所以开始参与,是…

    2025年12月13日 好文分享
    000
  • Python Illuminati

    庆祝农历新年和蛇年!本文探讨编程语言python如何通过简单的词汇变化,改变代码的解读方式,并以此类比易经的运作原理。 作者以其在道教艺术研究中的经验,结合python编程的学习,阐述了语言如何塑造我们的思维框架。 文章以Python的“for”循环为例,说明即使变量名(如“cities”)对程序运…

    2025年12月13日 好文分享
    000
  • pytorch的colorjitter

    给我买咖啡☕ colorjitter()可以随机更改图像的亮度,对比度,饱和度和色调,如下所示: *备忘录: 初始化的第一个参数是亮度(可选默认:0型:int,float或tuple/tuple/list(int或float)):*备忘录:>是亮度[min,max]的范围,因此必须是min 必…

    2025年12月13日 好文分享
    000
  • 使用BERT在Kaggle上使用NLP入门

    1,进口和eda import osiskaggle = os.environ.get(‘kaggle_kernel_run_type’, ”)from pathlib import pathif iskaggle: path = path(‘/kaggle/input/us-patent-phr…

    2025年12月13日
    000
  • 我创建了一个库,将GUI和TUI添加到您的项目中

    mininterface: 一款python库,让gui、tui和cli配置解析变得轻松便捷 MinInterface是一个强大的Python库,它能同时提供图形用户界面(GUI)、文本用户界面(TUI)和命令行界面(CLI),并支持配置文件解析。它解决了开发者在设计用户界面时常常面临的痛点,让您不…

    2025年12月13日 好文分享
    000
  • 使用稳定的扩散V上的笔记本电脑上的AI驱动图像处理 – 这比您想象的要容易!

    这个脚本利用稳定的扩散v1.5从拥抱面孔的扩散器库来基于给定文本提示符生成图像变化。通过使用火炬和pil,它处理输入图像,应用ai驱动的转换并保存结果。 您可以克隆此回购以获取代码https://github.com/alexander-uspenskiy/image_variations> …

    2025年12月13日
    000
  • 一天 – python中的论点类型

    Python 函数参数类型详解 本文将深入探讨 Python 函数中各种参数类型,包括位置参数、可变参数、关键字参数、默认参数、关键字可变参数以及关键字仅参数,并结合实例进行讲解。 1. 位置参数: 位置参数按照传递顺序依次赋值给函数参数。 立即学习“Python免费学习笔记(深入)”; def g…

    2025年12月13日
    000
  • 分析我的OURA睡眠评分 – 是AI还是数学?

    我分析了我的oura环的睡眠评分数据,以确定oura的睡眠评分算法是否依赖于复杂的ai,还是可以用简单的数学公式来解释。我的假设是,更长的深度睡眠时间和更低的心率与更高的睡眠评分相关。 我使用Oura开发者API提取了我的睡眠数据,并将其导入Elasticsearch进行分析。 我首先检索了睡眠评分…

    2025年12月13日 好文分享
    000
  • Python性能提示您必须知道

    Python代码性能优化全攻略:显著提升运行速度 python作为动态解释型语言,运行速度有时不如静态编译型语言。但通过一些技巧,我们可以大幅提升python代码的性能。本文将介绍多种优化策略,并使用timeit模块精确测量代码执行时间(默认运行一百万次)。 一、 测量代码执行时间 使用time.p…

    2025年12月13日
    000

发表回复

登录后才能评论
关注微信