test-kivy-app/kivy_venv/share/kivy-examples/kv/kvrun.py

39 lines
1.1 KiB
Python
Raw Normal View History

2024-09-15 12:12:16 +00:00
from kivy.app import App
from kivy.clock import Clock
from kivy.lang import Builder
from kivy.core.window import Window
class KvApp(App):
def __init__(self, filename, **kwargs):
self.filename = filename
super(KvApp, self).__init__(**kwargs)
def _print_fps(self, *largs):
print('FPS: %2.4f (real draw: %d)' % (
Clock.get_fps(), Clock.get_rfps()))
def _reload_keypress(self, instance, code, *largs):
if code != 286:
return
for child in Window.children[:]:
Window.remove_widget(child)
root = Builder.load_file(self.filename)
Window.add_widget(root)
def build(self):
Clock.schedule_interval(self._print_fps, 1)
Window.bind(on_keyboard=self._reload_keypress)
return Builder.load_file(self.filename)
if __name__ == '__main__':
import sys
import os
if len(sys.argv) < 2:
print('Usage: %s filename.kv' % os.path.basename(sys.argv[0]))
sys.exit(1)
KvApp(filename=sys.argv[1]).run()