Python独学ならTech-Joho TOP > いろいろやってみた >Kivyを使ってPythonで絵を描く
Kivyとは
KivyはPythonをつかってGUI(グラフィカルユーザインタフェース)を作成するためのライブラリです。
利用することで、絵を描くことも可能です。
参考
Kuvi 公式サイト
こちらのpygameを使った例とほぼ同じように、矩形を描いてみましょう。
1.Pythonの実行環境の準備
Kivyは、このサイトでおなじみのブラウザ上の黒い欄、Brython Consoleでは動きません。
まず、自分のパソコンにインストールする必要があります。
詳しくは、こちらのページの「1.Pythonの実行環境の準備」の欄をご覧ください。
pygameを使ってPythonで絵を描く
2.Kibyのインストール
pipでKibyをインストールしましょう。
まず、Kivyをインストールする際は、Kiby本体以外に、いくつか事前にインストールが必要なものがあります。
ここでは、Macの場合のインストールを紹介します。
anaconda prompotや、comand prompt、power shellなどの、黒い画面で、下のコマンドを実行してください。
$ brew install pkg-config sdl2 sdl2_image sdl2_ttf sdl2_mixer gstreamer
特にエラーメッセージがでなければ成功です。
下のようなインストール結果の概要がたくさんでてきます。
==> Summary 🍺 /usr/local/Cellar/gstreamer/1.12.4: 394 files, 20.8MB
次に、Cythonをインストールします。
$ pip install Cython==0.26.1
成功すると下のようなメッセージがでてきます。
Successfully installed Cython-0.26.1
最後に、Kivy本体をインストールします。
$ pip install kivy
途中、しばらく時間がかかります。
下のようなメッセージが表示されればインストール成功です。
Successfully installed Kivy-xxxxx
なお、私の環境では、下のメッセージがでて、一旦Kivyのビルドに失敗しました。
Failed building wheel for kivy
このissueで言われているのと同じ症状のようでした。
https://github.com/kivy/kivy/issues/5468
そこで、下のコマンドで開発中の最新バージョンをインストールしました。
$ pip3 install https://github.com/kivy/kivy/archive/master.zip
最終的には成功しました。
Successfully installed Kivy-1.10.1.dev0
3.まずは絵を書いてみる
絵を書いてみましょう。
シンプルに四角形(矩形)を描いてみましょう。
こちらと全く同じように描いてみます。
pygameを使ってPythonで絵を描く
kivytest.py
from kivy.core.window import Window Window.size = (300,200) from kivy.app import App from kivy.uix.widget import Widget from kivy.graphics import Color from kivy.graphics import Rectangle class MyApp(App): title = 'This is kivy sample' def build(self): widget = Widget() with widget.canvas: Color(1, 1, 0) Rectangle(pos=(10, 340), size=(20, 50)) return widget MyApp().run()
次に、ファイルを保存したディレクトリで下のコマンドを実行してください。
>>> python kivytest.py
このような黄色い長方形が左上に表示された小さなウインドウが出てくるはずです。
このウインドウを消すには、右上のxを押して下さい。
4.解説
ソースコードのそれぞれの部分の意味を見ていきましょう。
from kivy.core.window import Window Window.size = (300,200)
見てわかりやすく、ウインドウのサイズを幅300、縦200にしています。
from kivy.app import App from kivy.uix.widget import Widget from kivy.graphics import Color from kivy.graphics import Rectangle
必要なモジュールをインポートしています。APPとWidgetは、どのようなKibyプログラムでも必須です。
ColorとRectangleは、色付きの矩形(Rectanle)を描くために必要です。
class MyApp(App): title = 'This is kivy sample'
Kivyでプログラムを作るには、何はともあれAppクラスか、それを継承したクラスのインスタンスを作る必要があります。
ここでは、Appクラスを継承したクラスをまずつくっています。
また、ウインドウ上部に表示するタイトルも指定しています。
def build(self): widget = Widget() with widget.canvas: Color(1, 1, 0) Rectangle(pos=(10, 340), size=(20, 50)) return widget
buildメソッドの中で、具体的に描く内容を指定します。
Widgetクラスのインスタンスを作詞し、with widget.canvasの中で、
Colorクラスのインスタンスで黄色を指定し、
Rectangleクラスのインスタンスで矩形を指定しています。
Colorクラスのコンストラクタの引数は、赤色、青色、緑色の割合で、1から0で指定します。
Rectangleクラスのコンストラクタの引数のposは描く場所、sizeは大きさを指定します。
ちなみに、Kivyの座標は左下が原点のようです。
MyApp().run()
最後に作ったMyAppクラスのrunメソッドの実行でウインドウを描画します。