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

时间:2019-09-02 14:00:54

标签: python kivy frame-rate

我想在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()

2 个答案:

答案 0 :(得分:1)

导入顺序在这里很重要。该示例在导入任何其他与 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 可能会略微超过/不足,但这是一个大方向。

答案 1 :(得分:0)

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