Kivyで背景色と背景画像を設定する方法
みなさまおはこんばんにちは、せなです
今回はKivyを使ったときの背景色の設定方法と背景画像の設定方法について説明したいと思います
Contents
背景色の設定
Kivyではwidgetに対して描画を行うときには「Graphicsパッケージ」を基本的に使用します
Graphicsパッケージは簡単に説明すると、widgetに描画するときに活用できる関数群をサポートしているパッケージです
背景色を変更するときには「Color」を使用します
以下のコードをご覧ください
Kv Languageを使用
from kivy.app import App
class MainApp(App):
def __init__(self, **kwargs):
super(MainApp, self).__init__(**kwargs)
if __name__ == '__main__':
MainApp().run()
FloatLayout:
canvas.before:
Color:
rgba: 0, 1, 1, 1
Rectangle:
pos: self.pos
size: self.size
Pythonのみ
from kivy.app import App
from kivy.graphics import Color, Rectangle
from kivy.uix.floatlayout import FloatLayout
class RootWidget(FloatLayout):
def __init__(self, **kwargs):
super(RootWidget, self).__init__(**kwargs)
class MainApp(App):
def __init__(self, **kwargs):
super(MainApp, self).__init__(**kwargs)
self.root = root = RootWidget()
root.bind(size=self._update_rect, pos=self._update_rect)
with root.canvas:
Color(0, 1, 1, 1)
self.rect = Rectangle(size=root.size, pos=root.pos)
def _update_rect(self, instance, value):
self.rect.pos = instance.pos
self.rect.size = instance.size
if __name__ == '__main__':
MainApp().run()
上記のコードはどちらを実行しても同じ結果を得ることができます
背景画像の設定
背景画像の設定には「Rectangle」を使用します
「Rectangle」は基本的に位置を設定(取得)するために使用されますが、背景画像を設定する場合にも使用することができます
以下のコードをご覧ください
Kv Languageを使用
FloatLayout:
canvas:
Rectangle:
source: "back.jpg"
pos: self.pos
size: self.size
背景色の設定と同じ
Pythonのみ
from kivy.app import App
from kivy.graphics import Color, Rectangle
from kivy.uix.floatlayout import FloatLayout
class RootWidget(FloatLayout):
def __init__(self, **kwargs):
super(RootWidget, self).__init__(**kwargs)
class MainApp(App):
def __init__(self, **kwargs):
super(MainApp, self).__init__(**kwargs)
self.root = root = RootWidget()
root.bind(size=self._update_rect, pos=self._update_rect)
with root.canvas:
Color(0, 1, 1, 1)
self.rect = Rectangle(source="back.jpg", size=root.size, pos=root.pos)
def _update_rect(self, instance, value):
self.rect.pos = instance.pos
self.rect.size = instance.size
if __name__ == '__main__':
MainApp().run()
最後に
ザックリとメモ書き程度に書いていますので、後日加筆修正するかもしれません
それにしてもKivyは難しいですね…
調べたりしながら、勉強してますがなかなか時間がかかりそうです(^^;
ここまで読んで下さり、ありがとうございました
ではでは~
ディスカッション
コメント一覧
まだ、コメントがありません