【Kivy】ドラッグ&ドロップで受け取ったファイルのパスを表示する
- main.py
from kivy.app import App from kivy.core.window import Window class MainApp(App): def build(self): Window.bind(on_dropfile=self.on_dropped_file) return def on_dropped_file(self, window, file_path): self.root.text = file_path.decode('utf-8') if __name__ == '__main__': MainApp().run()
- main.kv
#:kivy 1.0 Label: text: ''
- 結果
【Kivy】ウィンドウサイズを変更する
- main.py(ウィンドウ生成前)
import kivy from kivy.app import App from kivy.config import Config Config.set('graphics', 'width', '1280') Config.set('graphics', 'height', '720') class MainApp(App): pass if __name__ == '__main__': MainApp().run()
- main.py(ウィンドウ生成後)
import kivy from kivy.app import App from kivy.core.window import Window Window.size = (1280, 720) class MainApp(App): pass if __name__ == '__main__': MainApp().run()
【Kivy】Clock を利用する
定期的に実行する
- main.py
from kivy.app import App from kivy.clock import Clock class MainApp(App): def on_start(self): Clock.schedule_interval(self.on_callback, 1.) def on_callback(self, delta: float): print('on_callback') if __name__ == '__main__': MainApp().run()
定期的に実行した後、停止する
- main.py
from kivy.app import App from kivy.clock import Clock from kivy.clock import ClockEvent class MainApp(App): def on_start(self): self.__count: int = 0 self.__clock_event: ClockEvent = Clock.schedule_interval(self.on_callback, 1.) def on_callback(self, delta: float): print('on_callback : self.__count = {}'.format(self.__count)) self.__count += 1 if self.__count > 5: self.__clock_event.cancel() if __name__ == '__main__': MainApp().run()
1 度だけ実行する
- main.py
from kivy.app import App from kivy.clock import Clock class MainApp(App): def on_start(self): Clock.schedule_once(self.on_callback, 1.) def on_callback(self, delta: float): print('on_callback') if __name__ == '__main__': MainApp().run()
【Kivy】App の簡単な使い方
- main.py
from kivy.app import App class MainApp(App): def on_start(self): self.title = 'Hello world' print('on_start') def on_stop(self): print('on_stop') if __name__ == '__main__': MainApp().run()
【Kivy】StackLayout を利用して敷き詰めるように並べる
- main.py
from kivy.app import App class MainApp(App): pass if __name__ == '__main__': MainApp().run()
- main.kv
#:kivy 1.0 StackLayout: Button: text: 'button 1' size_hint: None, None size: 400, 80 Button: text: 'button 2' size_hint: None, None size: 500, 160 Button: text: 'button 3' size_hint: None, None size: 300, 200 Button: text: 'button 4' size_hint: None, None size: 120, 400 Button: text: 'button 5' size_hint: None, None size: 800, 80 Button: text: 'button 6' size_hint: None, None size: 600, 200
【Kivy】ScatterLayout を利用してユーザが自由配置できるようにする
- main.py
from kivy.app import App class MainApp(App): pass if __name__ == '__main__': MainApp().run()
- main.kv
#:kivy 1.0 ScatterLayout: Button: text: 'button 1' size_hint: None, None size: 800, 600