Python + Kivy GUI アプリ開発 #001 導入

PythonでGUIアプリケーションを開発する方法はいくつかあるが、最も汎用性が高くマルチプラットフォームに対応した方法はKivyを使用する方法である。

  1. Kivyとは
  2. Kivyの導入方法
  3. Kivy上で日本語を実装する方法
  4. Python + Kivy の構成イメージ
  5. Kivyでよく使用されるプロパティ
  6. よく使用されるイベント

1. Kivyとは

Kivy とは Python の GUI用ライブラリー(フレームワーク)のことである。

Kivyのサンプルプログラムは下記のサイトが最も参考になる。

https://pyky.github.io/kivy-doc-ja/examples/gen__demo__showcase__main__py.html

ソースコードは以下の通り。下記の画像のような単一機能のカタログのようなアプリでKivyでできることを確認できる。

https://github.com/kivy/kivy/blob/master/examples/demo/showcase/main.py


2. Kivyの導入方法

下記のコードをターミナル上で順に実行することで使用可能となる。


# step1
python

# step2
exit()

# step3
set HTTP_PROXY=http://nnn.nnn.xxx.xxx

# step4
set HTTPS_PROXY=http://nnn.nnn.xxx.xxx

# step5
set USER=******

# step6
pip install –upgrade pip 

# step7
pip install kivy

3. Kivy上で日本語を実装する方法

Kivyでは通常、kvスクリプト内で、あるいはラベルやテキストインプットなどのウィジェット上で日本語を使用することができないが、japanize_kivy というライブラリーを使用することで、日本語を使用可能となる。


# step8: "_"ではなく"-"であることに注意
pip install japanize-kivy

通常のライブラリーと同様pyスクリプト上で下記のようにimportすれば良い。


import japanize_kivy                        # import時は"_"を使用することに注意


4. Python + Kivy の構成イメージ

概ね下記のような感じ。


5. Kivyでよく使用されるプロパティ

プロパティ例機能
halign:     ‘left’          # 水平(横)方向の位置揃え: horizontal align(整列)
valign:     ‘center’        # 鉛直(縦)方向の位置揃え: vertical   align(整列)
width:      “100px”         # ボタンなどのウィジェットの横幅
height:     “20px”          # ボタンなどのウィジェットの縦幅
size_hint:  (None,None)     # ボタンなどのウィジェットの縦横比: Noneを指定することで上記横幅・縦幅が適用される
pandding:   ( “0px”,  “0px”)# border領域の内側の余白を設定
margin:     ( “0px”,  “0px”)# border領域の外側の余白を設定
pos:        (“90px”, “90px”)# ボタンなどのウィジェットの位置 (原点は左下)
font_size:  “18px”          # テキストの大きさ
text:       “default”       # などのウィジェットの上(内側)に表示するテキスト
color: (0.3, 0.6, 1.0, 1.0) # テキストの色 (R, G, B, 不透明度α)
id: label_01#他のプロパティやイベントから呼び出すときにselfの代わりに使用する

6. イベント

イベント例機能
on_press: print(“Buttonが押されました”)# Buttonが押されたときに発生(機能)するイベント
on_release: print(“Buttonが押されました”)# ボタンをリリースした(離した)ときの動作
on_touch_down: print(“画面が押されました”)# 画面がタッチ(クリック)されたときに発生するイベント
on_touch_up: print(“画面が押されました”)# 画面がタッチ(クリック)されて離されたときに発生するイベント
on_text_validate: print(“テキストインプットへの入力が完了”)# プロパティmultiline=Flaseのときにのみ機能する(発生する)イベント
on_focus: print(“テキストインプットへの入力中です”)# フォーカス(アクティブ、文字入力可能な)状態になったときに発生するイベント

EOF

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

トップに戻る