※このページではアフィリエイト広告を利用しています

【Python応用】Kivyでアプリ作成-インストール方法(Windows環境)と基本的な操作-

Python

Kivyはクロスプラットフォーム対応のGUIアプリです。また、Windows、Android、iOS、Linux、MacOS Xで動作できるアプリ開発ができる特徴があります。

ここではWindowsでのKivyの環境構築方法と基本的な操作について解説しています。

この記事の対象

  • Kivyをインストールしたい方
  • Windowsで環境構築をしたい方
  • Kivyの基本的な操作方法を知りたい方
スポンサーリンク
スポンサーリンク

Kivyとは?

Kivy」はオープンソースのクロスプラットフォーム対応のGUIアプリです。

モダンなアプリ開発が無料で可能な事もあり、海外で人気のオープンソースライブラリになります。

特徴としては、処理内容はPythonで記述していきますが、レイアウトは「Kv言語」で記述する必要があります。このKv言語はCSSに似ており、普段Web系に触れない方は、慣れるのに時間がかかると思います。

環境構築

以下はこちらのサイトを参考にしています。

はじめにpipとwheelを最新版にします。

python -m pip install --upgrade pip wheel setuptools

次に関係ライブラリをインストールします。テキスト処理(docutils)、ソースコードをハイライト(pygments)、Windows上の処理(pypiwin32)、キーボードやマウスのパッケージ(sdl2)、描画のライブラリ(glew)を入れておくと良いです。

python -m pip install docutils pygments pypiwin32 kivy.deps.sdl2 kivy.deps.glew

最後に本体のインストールです。

python -m pip install kivy

日本語を使用したい方は以下も入れておくと良いです。

pip install japanize-kivy

画面作成

Hello World

from kivy.app import App
from kivy.uix.label import Label
from kivy.uix.widget import Widget

class MainScreen(Widget):
    def build(self):
        return Label(text='Hello World')

class TestApp(App):
    def __init__(self, **kwargs):
        super(TestApp, self).__init__(**kwargs)
        self.title = 'Test'

if __name__ == '__main__':
    TestApp().run()

上記のプログラムは「Hello World」と表示するだけのものになります。

プログラムの構造としてはクラスを用いて実行しています。

Kvファイルは以下の通りです。

#:kivy 1.11.1
<MainScreen>:
    BoxLayout:
        orientation: 'vertical'
        size: root.size

        Label:
            id: view_label
            text: 'Hello World'

MainScreen:

Kvファイルの最初にはversionを記述する慣習があるようなので、ここでも習っています。ただ、無くても問題無いようです。

また、今回はBoxLayoutを作成してその中にLabelを作成しています。

【結果】

Windowのサイズ指定

from kivy.app import App
from kivy.uix.label import Label
from kivy.uix.widget import Widget
from kivy.core.window import Window

Window.size = (800,400)

class MainScreen(Widget):
    def __init__(self, **kwargs):
        super().__init__(**kwargs)

class TestApp(App):
    def __init__(self, **kwargs):
        super(TestApp, self).__init__(**kwargs)
        self.title = 'Test'

if __name__ == '__main__':
    TestApp().run()

PythonファイルでWindowを呼び出して「Window.size」で任意の数値を指定するだけです。

Kvファイルは「Hello World」と同じなので省略します。

【結果】

【補足】Kv言語の記述方法

Kv言語はレイアウトを記述するものになります。これはPythonのファイル内で記述するかKvファイル(拡張子.kv)に記述するか、Builderで任意のファイルを読込むかでレイアウトを作成できます。

Appのサブクラス名に対応した kvファイルでレイアウト作成

Kvファイルで作成する場合はPythonのファイルと同じディレクトリ内に入れておく必要があります。また、Appのサブクラス名に対応した kvファイルの名称で作成する必要があります。下記の場合だと「test.kv」になります。

from kivy.app import App
from kivy.uix.label import Label
from kivy.uix.widget import Widget

class MainScreen(Widget):
~~~
~~~
class TestApp(App):
~~~
~~~
if __name__ == '__main__':
    TestApp().run()

実行ファイル(.py)の中で記述する方法

Pythonのファイル内で記述する方法は以下になります。

from kivy.app import App
from kivy.uix.label import Label
from kivy.uix.widget import Widget
from kivy.lang import Builder
Builder.load_string("""
<MainScreen>:
    BoxLayout:
        orientation: 'vertical'
        size: root.size

        Label:
            id: view_label
            text: 'Hello World'
""")

Builderで任意のファイルを読込む方法

from kivy.app import App
from kivy.uix.label import Label
from kivy.uix.widget import Widget
from kivy.lang import Builder

Builder.load_file('***.kv')

任意のファイルを読込む場合は「Builder.load_file()」になります。

Kvファイルは以下の通りです。

<MainScreen>
    BoxLayout:
        orientation: 'vertical'
        size: root.size

        Label:
            id: view_label
            text: 'Hello World'
タイトルとURLをコピーしました