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

Kivy App的Label组件不更新但Psutil模块可正常获取最新电量数据

Kivy电量显示不刷新问题修复

问题根因

  • 电量百分比percent仅在程序启动时计算了一次,后续没有重新调用psutil.sensors_battery()获取最新电量
  • Kivy的App.run()是阻塞式主事件循环入口,App运行期间外层的while True完全不会执行,也不可能通过重启App的方式刷新数值
  • 没有在Kivy的事件循环中绑定UI更新逻辑,直接在框架外修改控件属性无法触发界面重绘

修复代码

from kivy.app import App
from kivy.uix.label import Label
from kivy.clock import Clock
import psutil

class Application(App):
    def build(self):
        self.battery_label = Label()
        # 每3秒刷新一次电量,可自行调整间隔时长(单位:秒)
        Clock.schedule_interval(self.refresh_battery, 3)
        # 启动时立刻刷新一次避免初始空白
        self.refresh_battery()
        return self.battery_label

    def refresh_battery(self, dt=None):
        # 每次刷新都重新读取当前电量
        battery = psutil.sensors_battery()
        self.battery_label.text = f"{battery.percent}%"

if __name__ == "__main__":
    Application().run()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 22:15:08