Kivy tutorial 005: A drawing app(長方形描画);を作ってみた!

この記事では、「Python Kivyプログラミング Pythonで作るマルチタッチアプリ」という本を頼りに、章の終わりごとに本と対応するKivy公式サイト(英語で泣きそう)のサンプルプログラムに挑戦しています。

上の本の、5章を終えた所までで類題として作れるアプリです。

Kivy tutorial 005: A drawing app

「Kivyというライブラリを使ってPythonでアプリを作って行く」に戻る

赤い四角のすぐ上のプログラムを、エディタ Visual Studio Codeに書いていってターミナルで実行します。

from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.slider import Slider
from kivy.uix.widget import Widget
from kivy.graphics import Rectangle,Color


class DrawingWidget(Widget):
def init(self):
super(DrawingWidget,self).init()

with self.canvas:
Color(1,0,0,1)#赤、緑、青、透明度
Rectangle(size=(300,100),
pos=(300,200))
class DrawingApp(App):

def build(self):
root_widget=DrawingWidget()
return root_widget
DrawingApp().run()

このような赤い四角が表示されました。
ここから少し遊びたいと思います。

色をシアン(青と緑)に変えて、位置を動かします。

with self.canvas:
Color(0,1,1,1)#赤、緑、青、透明度
Rectangle(size=(300,100),
pos=(300,600))

このように書き換えました。

更に、下記のコードを追加します。

with self.canvas:
Color(1,1,0,1)#赤、緑、青、透明度
Rectangle(size=(300,100),
pos=(0,700))


with self.canvas:
Color(1,0,1,0.7)#赤、緑、青、透明度
Rectangle(size=(300,100),
pos=(0,500))

with self.canvas:
Color(0,1,1,0.6)#赤、緑、青、透明度
Rectangle(size=(300,100),
pos=(300,600))

with self.canvas:
Color(1,1,0,1)#赤、緑、青、透明度
Rectangle(size=(300,100),
pos=(600,700))

with self.canvas:
Color(1,0,1,0.7)#赤、緑、青、透明度
Rectangle(size=(300,100),
pos=(600,500))

with self.canvas:
Color(0,1,1,0.6)#赤、緑、青、透明度
Rectangle(size=(300,100),
pos=(900,600))
with self.canvas:
Color(1,1,0,1)#赤、緑、青、透明度
Rectangle(size=(300,100),
pos=(1200,700))
with self.canvas:
Color(1,0,1,0.7)#赤、緑、青、透明度
Rectangle(size=(300,100),
pos=(1200,500))

簡易的な市松模様です。シアンとマゼンタの透明度も変更しています。

では、最終的なコードにして実行します。

from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.slider import Slider
from kivy.uix.widget import Widget
from kivy.graphics import Rectangle,Color

class DrawingWidget(Widget):
def init(self):
super(DrawingWidget,self).init()

with self.canvas:
Color(1,1,1,1)#赤、緑、青、透明度
self.rect=Rectangle(size=(self.size),
pos=self.pos)

self.bind(pos=self.update_rectangle,
size=self.update_rectangle)

def update_rectangle(self,instance,value):
self.rect.pos=self.pos
self.rect.size=self.size

class DrawingApp(App):
def build(self):
root_widget=DrawingWidget()
return root_widget

DrawingApp().run()

真っ白いキャンバスが現れました。

「Kivyというライブラリを使ってPythonでアプリを作って行く」に戻る

<<関連記事>>

Python自作サンプル集
Swiftでアプリ開発される方向け
これからプログラミングを始める方へ
プログラミングと資格について