Kivy tutorial 006: Let’s draw something(お絵かき);を作ってみた!

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

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

公式サイト
Kivy tutorial 006: Let’s draw something

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

前回 の記事の最後のコードに追記したコードを掲載します。
追記したところはコメントがついています。

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)

#前回のコードから追記 
Color(1,0,0,1)
Rectangle(size=(300,100),
pos=(300,200))
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()

実行します。

このコードを修正・追記して、ランダムな色で落書きが出来るようにします。

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,Line
from random import random


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.rect_colour=Color(1,0,0,1)
Rectangle(size=(300,100),
pos=(300,200))
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
def on_touch_down(self,touch):

super(DrawingWidget,self).on_touch_down(touch)
with self.canvas:
Color(random(),random(),random())
self.line=Line(points=[touch.pos[0],touch.pos[1]],width=2)

def on_touch_move(self,touch):
self.line.points=self.line.points+[touch.pos[0],touch.pos[1]]

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

DrawingApp().run()

今日の日付を書きました。

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

<<関連記事>>

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