Skip to content

[#82-A] 消除空闲 Tick 与卡片初始化的重复渲染 #89

Description

@amazing-fish

父任务:#82

第一性原理边界

每秒 Tick 必须继续扫描完整 self.todos 以保证筛选外任务也能提醒;本子任务只移除结果未变化时的 QWidget 副作用,不减少业务状态检查。

实施范围

  • 拆分卡片静态完成状态与动态计时状态的渲染。
  • 缓存上一轮完成状态、计时文本和计时样式;最终呈现未变化时立即返回。
  • 无变化 Tick 不重复调用 setIconsetStyleSheetsetFontupdate_text_display_sync_todo_card_sizesdoItemsLayout
  • 卡片初次构建只执行一次完整计时渲染,移除构造、应用主题、插入列表后的重复刷新。
  • 计时文字或样式实际变化时仍立即更新,完成、推迟、到期、无截止时间和非法日期视觉保持不变。
  • 增加确定性调用次数和状态转换测试;不使用易抖动的 CI 毫秒阈值。
  • 按 bugfix 规则更新修订版本及当前性能锚点。

非目标

验收标准

  • 100 条稳定任务连续两个等价 Tick,第二次不触发静态控件重绘或列表布局。
  • 筛选外任务仍参与提醒扫描。
  • 每张新卡片只执行一次完整计时初始化。
  • 计时文本跨秒/分钟、推迟、到期和完成状态转换继续正确刷新。
  • python -m compileall todo_app、完整 unittestgit diff --check 通过。
  • PR 明确记录本地环境限制及 Windows/EXE 尚需补充的人工性能数据。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions