0

0

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

聖光之護

聖光之護

发布时间:2025-02-01 08:04:00

|

955人浏览过

|

来源于php中文网

原创

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

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

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

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

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

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

    ECTouch移动商城系统
    ECTouch移动商城系统

    ECTouch是上海商创网络科技有限公司推出的一套基于 PHP 和 MySQL 数据库构建的开源且易于使用的移动商城网店系统!应用于各种服务器平台的高效、快速和易于管理的网店解决方案,采用稳定的MVC框架开发,完美对接ecshop系统与模板堂众多模板,为中小企业提供最佳的移动电商解决方案。ECTouch程序源代码完全无加密。安装时只需将已集成的文件夹放进指定位置,通过浏览器访问一键安装,无需对已有

    下载
import tkinter as tk
from tkinter import ttk
import time

root = tk.Tk()
root.title("时间跟踪器")
  1. 设计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)
  1. 添加功能: 定义启动、停止和更新计时器的函数:
running = False
start_time = 0

def 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")
  1. 主循环: 保持窗口运行并响应事件:
root.mainloop()

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

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

  1. 安装和导入: 使用pip安装Pygame (pip install pygame),然后导入必要的模块:
import pygame
import sys
from pygame.locals import *
import time
  1. 初始化Pygame: 设置显示窗口和时钟:
pygame.init()
fps_clock = pygame.time.Clock()

width, height = 400, 200
screen = pygame.display.set_mode((width, height))
pygame.display.set_caption('时间跟踪器')
  1. 设置显示和字体: 定义颜色和字体:
black = (0, 0, 0)
white = (255, 255, 255)
font = pygame.font.Font(None, 36) # 使用默认字体
  1. 计时器逻辑: 与Tkinter类似,初始化计时器变量并定义计时器函数:
start_time = None
elapsed_time = 0
running = False

def start_timer():
    global running, start_time
    if not running:
        running = True
        start_time = time.time() - elapsed_time

def stop_timer():
    global running, elapsed_time
    if running:
        running = False
        elapsed_time = time.time() - start_time
  1. 主事件循环: 处理事件并更新显示:
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则更灵活,适合需要更复杂图形和动画的应用。 本指南提供了两种方法的完整代码示例,方便读者根据自身需求选择合适的方案。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
pip安装使用方法
pip安装使用方法

安装步骤:1、确保Python已经正确安装在您的计算机上;2、下载“get-pip.py”脚本;3、按下Win + R键,然后输入cmd并按下Enter键来打开命令行窗口;4、在命令行窗口中,使用cd命令切换到“get-pip.py”所在的目录;5、执行安装命令;6、验证安装结果即可。大家可以访问本专题下的文章,了解pip安装使用方法的更多内容。

339

2023.10.09

更新pip版本
更新pip版本

更新pip版本方法有使用pip自身更新、使用操作系统自带的包管理工具、使用python包管理工具、手动安装最新版本。想了解更多相关的内容,请阅读专题下面的文章。

412

2024.12.20

pip设置清华源
pip设置清华源

设置方法:1、打开终端或命令提示符窗口;2、运行“touch ~/.pip/pip.conf”命令创建一个名为pip的配置文件;3、打开pip.conf文件,然后添加“[global];index-url = https://pypi.tuna.tsinghua.edu.cn/simple”内容,这将把pip的镜像源设置为清华大学的镜像源;4、保存并关闭文件即可。

761

2024.12.23

python升级pip
python升级pip

本专题整合了python升级pip相关教程,阅读下面的文章了解更多详细内容。

349

2025.07.23

Python 自然语言处理(NLP)基础与实战
Python 自然语言处理(NLP)基础与实战

本专题系统讲解 Python 在自然语言处理(NLP)领域的基础方法与实战应用,涵盖文本预处理(分词、去停用词)、词性标注、命名实体识别、关键词提取、情感分析,以及常用 NLP 库(NLTK、spaCy)的核心用法。通过真实文本案例,帮助学习者掌握 使用 Python 进行文本分析与语言数据处理的完整流程,适用于内容分析、舆情监测与智能文本应用场景。

10

2026.01.27

拼多多赚钱的5种方法 拼多多赚钱的5种方法
拼多多赚钱的5种方法 拼多多赚钱的5种方法

在拼多多上赚钱主要可以通过无货源模式一件代发、精细化运营特色店铺、参与官方高流量活动、利用拼团机制社交裂变,以及成为多多进宝推广员这5种方法实现。核心策略在于通过低成本、高效率的供应链管理与营销,利用平台社交电商红利实现盈利。

109

2026.01.26

edge浏览器怎样设置主页 edge浏览器自定义设置教程
edge浏览器怎样设置主页 edge浏览器自定义设置教程

在Edge浏览器中设置主页,请依次点击右上角“...”图标 > 设置 > 开始、主页和新建标签页。在“Microsoft Edge 启动时”选择“打开以下页面”,点击“添加新页面”并输入网址。若要使用主页按钮,需在“外观”设置中开启“显示主页按钮”并设定网址。

16

2026.01.26

苹果官方查询网站 苹果手机正品激活查询入口
苹果官方查询网站 苹果手机正品激活查询入口

苹果官方查询网站主要通过 checkcoverage.apple.com/cn/zh/ 进行,可用于查询序列号(SN)对应的保修状态、激活日期及技术支持服务。此外,查找丢失设备请使用 iCloud.com/find,购买信息与物流可访问 Apple (中国大陆) 订单状态页面。

131

2026.01.26

npd人格什么意思 npd人格有什么特征
npd人格什么意思 npd人格有什么特征

NPD(Narcissistic Personality Disorder)即自恋型人格障碍,是一种心理健康问题,特点是极度夸大自我重要性、需要过度赞美与关注,同时极度缺乏共情能力,背后常掩藏着低自尊和不安全感,影响人际关系、工作和生活,通常在青少年时期开始显现,需由专业人士诊断。

7

2026.01.26

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
最新Python教程 从入门到精通
最新Python教程 从入门到精通

共4课时 | 22.3万人学习

Django 教程
Django 教程

共28课时 | 3.6万人学习

SciPy 教程
SciPy 教程

共10课时 | 1.3万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号