kivy/examples/kv/kvrun.py

35 lines
965 B
Python

#!/usr/bin/env python
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 _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.options['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.options['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()