You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为魔方计时器添加长按空格键0.5秒启动功能?

魔方计时器长按启动功能实现方案

要实现「长按空格键至少0.5秒后松开才启动计时器」的功能,只需在原有代码中添加按压时间记录和时长判断逻辑,具体修改如下:

修改点说明

  • 在类初始化时新增属性,用于存储空格键按下的时间戳
  • 按下空格键时记录当前时间
  • 松开空格键时计算按压时长,仅当时长≥0.5秒时才启动计时器

修改后的完整代码

import tkinter as tk
import time
import keyboard

class RubiksTimerApp:
    def __init__(self, root):
        self.root = root
        self.root.title("Rubik's Cube Timer")

        self.start_time = None
        self.running = False
        self.elapsed_time = 0
        self.space_press_time = None  # 新增:记录空格键按下的时间

        self.timer_label = tk.Label(root, text="0.000", font=("Helvetica", 72))
        self.timer_label.pack(pady=30)

        keyboard.on_press_key("space", self.space_pressed)
        keyboard.on_release_key("space", self.space_released)

        self.root.geometry("400x300")
        self.root.mainloop()

    def space_pressed(self, event):
        if not self.running:
            self.start_time = None
            self.timer_label.config(text="0.000")
            self.space_press_time = time.time()  # 记录按下时间

    def space_released(self, event):
        if not self.running:
            # 计算按压时长
            press_duration = time.time() - self.space_press_time
            # 判断是否满足长按要求
            if press_duration >= 0.5:
                self.running = True
                self.start_time = time.time()
                self.elapsed_time = 0
                self.update_timer()
        else:
            self.running = False
            elapsed_time = time.time() - self.start_time
            self.elapsed_time += elapsed_time

    def update_timer(self):
        if self.running:
            current_time = time.time() - self.start_time + self.elapsed_time
            self.timer_label.config(text=f"{current_time:.3f}")
        self.root.after(10, self.update_timer)

if __name__ == "__main__":
    root = tk.Tk()
    app = RubiksTimerApp(root)

逻辑说明

  • 按下空格时,重置计时器显示并记录当前时间到self.space_press_time
  • 松开空格时,计算当前时间与self.space_press_time的差值(即按压时长)
  • 只有当时长≥0.5秒时,才触发计时器启动逻辑,否则不执行任何操作

内容的提问来源于stack exchange,提问作者TaranJS

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 23:31:32