Hello, world.
今日からプログラミングに関する記事を書いていきます。
対象言語は C, C++, Python を予定していますが、 当面は Python のKivyライブラリを中心に据えようと思います。
Kivy は Python のオープンソースライブラリで、マルチタッチGUIを作るためのものです。
Linux, MacOS, Windows などの主なデスクトップOSで開発が可能です。
またこれらのOSはもちろんのこと、Android OS や iOS 向けにアプリをビルドすることもできます。
公式サイトはここです。
早速 'Hello, world.' から。
from kivy.app import App from kivy.uix.button import Button class helloApp(App): def build(self): return Button(text='Hello, world.') helloApp().run()
このように基本クラスである App クラスのサブクラスを定義し (ここでは helloApp)、そのオブジェクトを生成して run メソッドを走らせるとアプリが起動します。
Kivy のGUI構成のポイントは、ウィジェットツリーを構築することにあります。
ウィジェットツリーとは、ウィジェット (ボタンやラベルなどGUIの部品です) 同士の親子関係から定められる根付き木 (rooted tree, 詳しくはググってください) です。その根に相当するウィジェットをルートウィジェットといい、Appクラス (のサブクラス) の build メソッドではルートウィジェットを返すことが求められます。
上記のコードでは、
def build(self): return Button(text='Hello, world.')
となっていますので、Button オブジェクトがルートウィジェットとなるのです。(かつ、ウィジェットツリーはこの Button オブジェクトのみから成る。)
当然、ウィジェット1つでは面白くも何ともありません。
そこで複数のウィジェットを規則的に配置するレイアウトや、
複数のスクリーンを切り替えるためのスクリーンマネージャを
ウィジェットツリーに組み込んで使っていくことになるのですが、
これはまた次回の記事で書きたいと思います。