Python + Kivy GUI アプリ開発 #006 プロパティ/イベント

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)
colorhex値の文字列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_hint0-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任意の変数label01idには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_colorhex値の文字列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_colorhex値の文字列get_color_from_hex(‘#193549ff’)Widgetの背景色設定
cursor_colorhex値の文字列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

コメントを残す

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

トップに戻る