Pythonのフレームワーク Kivy を利用した比較的簡単な機能の追加についてまとめる。今回は各機能のプロパティとイベントの中でも主要なものを紹介する。実際にはより多くのプロパティとイベントが存在するが、今回紹介しないものはよりリッチなアプリケーション開発で使用するものといっても過言ではないため、とりあえずは知らなくても良い。
下記の機能のプロパティ/イベントの一部を紹介する
- Label
- Button
- TextInput
※基本的にプロパティに設定可能な値は正の数であることに注意。ButtonのプロパティはLabelのプロパティすべてを含む。
1. 共通のプロパティ
property名 | 取れる値 | コード例 | 説明 | 備考 |
width | 整数値の文字列 | “100px” | Widgetのx方向のsize(横幅) | self.size[0] と同じ。size_hintを(None,None)にすること |
height | 整数値の文字列 | “50px” | Widgetのy方向のsize(高さ) | self.size[1] と同じ。size_hintを(None,None)にすること |
size | 整数値の文字列 | (“100px”, “50px”) | (width,height) | size_hintを(None,None)にすること |
x | 整数値の文字列 | “20px” | Widgetのx方向の位置 | 画面左下の原点からの横方向位置 |
y | 整数値の文字列 | “77px” | Widgetのy方向の位置 | 画面左下の原点からの高さ位置 |
pos | 整数値の文字列 | (“20px”, “77px”) | Widgetの位置 | 画面左下の原点からの位置(x,y) |
color | hex値の文字列 | get_color_from_hex(‘#193549ff’) | textの色 | 次のコードでインポートすること#: import get_color_from_hex kivy.utils.get_color_from_hex |
text | 文字列 | “Hello World!” | 表示するテキスト | Python側でjapanize_kivyをimportすることで日本語を表示することができる。 |
size_hint | 0-1.0までの実数値/None | (None,None) | sizeに対する縮小率 | Noneではなく数値を入れた場合x,y方向それぞれroot Widgetに対するsizeの縮小サイズがsizeとして適用される。 |
halign | “left”/”center”/”right” のいずれか | “right” | 水平(横, x)方向のテキスト揃え | horizontal align(整列) |
valign | “top”/”middle”/”bottom” のいずれか | “top” | 鉛直(高さ,y)方向のテキスト揃え | vertical align(整列) |
pandding | 整数値の文字列 | (“0px”, “0px”) | border領域”の内側の余白を設定 | (x方向,y方向) |
margin | 整数値の文字列 | (“0px”, “0px”) | border領域”の外側の余白を設定 | (x方向,y方向) |
font_name | 文字列(ファイルパス) | “C:\\Windows\\Fonts\\meiryo.ttc” | フォントファイルまでのファイルパス | |
font_size | 整数値の文字列 | “12px” | フォントのサイズ | |
id | 任意の変数 | label01 | idにはWidgetのselfがそのまま入る | idを設定したWidget内におけるlabel01.text と self.textとは同じ |
center | 整数値の文字列 | (“50px”, “25px”) | Widgetのセンター位置 | (x方向,y方向) |
text_size | 実数値の文字列 | (“100px”, “50px”) | 表示するテキスト全体のサイズ | 基本は使用しなくて良い。次のような関係性があるので size,panddingを設定した場合にはtext_sizeを設定しないこと: ((self.size[0] – self.pandding[0]) ,(self.size[1] – self.pandding[1])) |
2. Button専用のプロパティ/イベント
Button専用のプロパティ | ||||
property名 | 取れる値 | コード例 | 説明 | 備考 |
background_down | 文字列(ファイルパス) | “./element/clear.png” | ボタンが押されたときの背景画像 | 実行するpyファイルの相対パスで記述すると良い |
background_normal | 文字列(ファイルパス) | “./element/clear.png” | ボタンが押されていないときの背景画像 | 実行するpyファイルの相対パスで記述すると良い |
background_color | hex値の文字列 | get_color_from_hex(‘#193549ff’) | テクスチャカラーの乗数として機能する。 | デフォルトのテクスチャは灰色なので、背景色を設定するだけで結果が暗くなるため、 background_normalを空””に設定する必要がある。 |
Button専用のイベント | ||||
event名 | 取れる値 | コード例 | 説明 | 備考 |
on_press | 代入、関数の実行などの処理 | print(“self”) | ボタンを押下した際の処理 | |
on_release | 代入、関数の実行などの処理 | label01.text = “pressed!” | ボタンを離したときの処理 | |
Buttonに埋め込む画像に使えるアイコンをダウンロードできるサイト Google Fonts のリンク:
https://fonts.google.com/icons?query=icon
3. TextInput専用のプロパティ/イベント
property名 | 取れる値 | コード例 | 説明 | 備考 |
multiline | “False”/”True” | “False” | Widget内の改行を許すかどうか | “True”の場合使えないイベントが存在する。 |
foreground_color | hex値の文字列 | get_color_from_hex(‘#193549ff’) | Widgetの背景色設定 | |
cursor_color | hex値の文字列 | get_color_from_hex(‘#193549ff’) | Widget内のカーソルの色 | |
background_active | 文字列(ファイルパス) | “./element/background_image0.png” | フォーカス時の背景画像 | |
background_normal | 文字列(ファイルパス) | “./element/background_image1.png” | 未フォーカス時の背景画像 | |
event名 | 取れる値 | コード例 | 説明 | 備考 |
on_focus | 代入、関数の実行などの処理 | root.clicked_02_sub_func() | TextInputにフォーカスしたときの処理 | |
on_text_validate | 代入、関数の実行などの処理 | print(“Pressed Enter key!”) | Enter keyを押したときの処理 | ユーザーが「Enter」を押したときにmultiline=Falseモードでのみ発生。 TextInputのフォーカスも解除される。 |
on_double_tap | 代入、関数の実行などの処理 | print(“on_double_tap event!”) | ダブルタップした際に実行される処理 | |
EOF