イマサラナガラ

時代に取り残されることもありますが、適度にキャッチアップしていきたいです。

【Python】KivyによるGUI開発① デモの実行

Kivyとは

Pythonで利用できるGUI開発用パッケージです。

PythonにはこのほかにもGUI開発のためのパッケージが存在しており、有名なところではtkinterwxPythonPyQt(およびPySide2)等があります。

また、それらのラッパーとしてPySimpleGUIなるものもあるようです。

 

パッケージごとの違いは色々とあるため詳細は他サイト等を参照頂きたいですが、私がKivyを選んだ理由は3点です。

1.MIT License

個人(非商用)での開発なら基本的にライセンスはなんでも良いと思います。

一方、営利目的で使う、会社で使うといった場合にはライセンスに気を配る必要があります。

私はGUI開発の仕事をしているわけではないので正直PyQtでも良いのですが、もしいずれそうした仕事をする機会が訪れた際に知識を流用できると楽なので、Kivyを触ってみます。

 

2.簡単にスタイリッシュなGUIが作れるのでは…?という期待

本稿の途中でKivyのデモを実行していますが、これがとても格好いいんですね。

tkinterwxPythonでも機能的に問題ないGUIは作れるのですが、折角作るならカッコいいのが作りたい!

tkinterでも良いGUIは作れます、私のセンスが無いだけで…)

 

3.レイアウトと機能が分離されている(らしい)

KivyではPythonソースコードとは別に、Kivyファイルというものを使ってGUIのレイアウトを構成できるそうです。

機能部分とレイアウト部分とが別々のファイルで管理されることで、ソースの可読性が高いのではと期待しています。

 

Kivyのインストール 

実行環境は以下の通りです。

Windows10 Pro 64bit 20H2

AMD Ryzen 7 3700X

Python 3.9.5

Kivy 2.0.0

 

以下の手順に倣いました。

kivy.org

 

python -m pip install --upgrade pip setuptools virtualenv

mkdir KivyProject

cd KivyProject

python -m venv venv

python -m pip install kivy[base] kivy_examples

 

以上を経て、現在インストール済のパッケージは下記の通りです。

Package Version
----------------- ---------
appdirs 1.4.4
astroid 2.5.3
certifi 2020.12.5
chardet 4.0.0
colorama 0.4.4
distlib 0.3.1
docutils 0.17.1
filelock 3.0.12
idna 2.10
isort 5.8.0
Kivy 2.0.0
kivy-deps.angle 0.3.0
kivy-deps.glew 0.3.0
kivy-deps.sdl2 0.3.1
Kivy-examples 2.0.0
Kivy-Garden 0.1.4
lazy-object-proxy 1.6.0
mccabe 0.6.1
Pillow 8.2.0
pip 21.1.1
Pygments 2.9.0
pylint 2.7.4
pypiwin32 223
pywin32 300
requests 2.25.1
setuptools 56.2.0
six 1.16.0
toml 0.10.2
urllib3 1.26.4
virtualenv 20.4.6
wrapt 1.12.1

デモの実行

上記ページには

python kivy_venv\share\kivy-examples\demo\showcase\main.py

とありますが、私の環境ではKivyProject\venv内にshare含む一切のファイルが生成されていませんでした。(カレントディレクトリの違い?)

しかし、代わりにPythonのインストールディレクトリ(C:\Users\USERNAME\AppData\Local\Programs\Python\Python39)に生成されていたため、こちらを実行。

python "C:\Users\USERNAME\AppData\Local\Programs\Python\Python39\share\kivy-examples\demo\showcase\main.py"

f:id:aced1a:20210516023115p:plain

demoの実行画面

デモではボタンやチェックボックスなどといった各種ウィジェットの挙動や画面遷移の様子を確認できます。

「KivyでどんなGUIが作れるか」がとても簡潔に纏まっているので、ぜひ実際に触ってみると良いでしょう。

 

こんな感じで第1回は終了。

次回はデモを参考にしつつ、実際に手を動かしてみたいと思います。