在 Python 的 Kivy 中使用 Config 设置 maxfps 不会限制 fps

Setting maxfps using Config in Python's Kivy doesn't limit the fps

我想在 Kivy 中定义 fps 限制。

我尝试使用 Config.set('graphics', 'maxfps', '60') 将 fps 限制为 60,但根据 Clock.schedule_interval(lambda dt: print(Clock.get_fps()), 1).

,我仍然至少达到 70 到 80 fps 左右

这是我的完整代码:

from kivy.clock import Clock
from kivy.uix.label import Label
from kivy.config import Config

Config.set('graphics', 'maxfps', '60')


class SimpleKivy(App):
    def build(self):
        Clock.schedule_interval(lambda dt: print(Clock.get_fps()), 1)
        return Label(text='Hello world!')


if __name__ == '__main__':
    SimpleKivy().run()

你需要先放 import config 然后你需要放配置集,它应该像这样工作。

导入顺序在这里很重要。该示例在导入任何其他与 kivy 相关的内容之前导入配置时有效:

from kivy.config import Config

Config.set('graphics', 'maxfps', '10')

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



class SimpleKivy(App):
    def build(self):
        Clock.schedule_interval(lambda dt: print(Clock.get_fps()), 1)
        return Label(text='Hello world!')


if __name__ == '__main__':
    SimpleKivy().run()

如 Kivy bugtracker 上的相关 github 问题所述,FPS 可能 over/undershoot 略有下降,但这是一个总体方向。