Python Kivyでボタンを作成・操作する方法【サンプルコード付き】
Kivyは、プラットフォームに依存しないPython製のGUIツールキットです。Android、iOS、Linux、Windowsなどさまざまな環境で動作するため、「一度コードを書けば複数のプラットフォームで実行できる」という大きなメリットがあります。主にAndroidアプリ開発向けに利用されますが、デスクトップアプリケーションの開発にも十分活用できます。
KivyにおけるButton(ボタン)は、押下時(クリックやタッチして離したとき)に特定のアクションを実行できるLabelの一種です。ボタンの裏側に関数(コールバック)を紐づけたり、見た目を自由にカスタマイズしたりすることも可能です。
ボタンで設定できる主なプロパティ
- text:ボタンに表示される文字列
- font_size:フォントサイズ(例:"20sp")
- background_color:背景色(r, g, b, a のタプル形式)
- color:文字色(r, g, b, a のタプル形式)
- size / size_hint:ボタンのサイズ(固定値または親ウィジェットに対する比率)
- pos:表示位置(x, y座標)
サンプルコード
以下は、Kivyでボタンを作成し、押されたときにコールバック関数を呼び出す基本的な例です。
# kivyモジュールをインポート
import kivy
# kivyのバージョンを指定(このバージョン未満では動作しない)
kivy.require("1.9.1")
# アプリの基底クラスAppをインポート
# Appは常にアプリケーションのインスタンスを参照する
from kivy.app import App
# ボタンを作成するためにButtonをインポート(未インポートの場合エラーになる)
from kivy.uix.button import Button
# ボタンを作成するクラス
class ButtonApp(App):
def build(self):
# 色は (r, g, b, a) のタプルで指定
btn = Button(text ="Push Me !",
font_size ="20sp",
background_color =(1, 1, 1, 1),
color =(1, 1, 1, 1),
size =(32, 32),
size_hint =(.2, .2),
pos =(300, 250))
# bind() を使ってボタンとコールバック関数を紐づける
btn.bind(on_press = self.callback)
return btn
# ボタンが押されたときに呼ばれるコールバック関数
def callback(self, event):
print("button pressed")
print('Kivy!')
# ButtonAppクラスのルートオブジェクトを生成
root = ButtonApp()
# run()メソッドでプログラム全体を実行する
root.run()
コードのポイント解説
1. バージョン指定
kivy.require("1.9.1") により、このコードが動作する最低限のKivyバージョンを制限しています。古いバージョンの環境では警告が出るため、互換性の確保に役立ちます。
2. build() メソッド
build() はAppクラスの必須メソッドで、ここで返したウィジェットが画面に表示されます。この例ではカスタマイズ済みのButtonインスタンスを返しています。
3. bind() によるイベント処理
btn.bind(on_press=self.callback) のように bind() を使うことで、ボタンが押された瞬間に callback 関数が自動的に呼び出されます。イベント駆動型のGUIプログラミングにおいて最も重要な仕組みです。
4. 実行方法
最後に root.run() を呼び出すことでアプリが起動し、ウィンドウ上に「Push Me !」と表示されたボタンが現れます。ボタンをクリックすると、コンソールに「button pressed」と「Kivy!」が出力されます。
この基本形を覚えておけば、ボタンの色やサイズの変更、複数ボタンの配置、レイアウトとの組み合わせなど、より高度なUI構築へスムーズにステップアップできます。
-
Pythonで画像を操作する方法|Pillowライブラリの基本から実践まで
Pythonで画像処理を行う際に、最も人気があり事実上の標準とされているライブラリがPillowです。Pillowは旧Python Image Library(PIL)の後継バージョンであり、シンプルな操作から高度な画像加工まで幅広い機能を提供しています。また、SciPyやMatplotlibなど他のPythonライブラリにおける簡易的な画像サポートの基盤としても利用されています。Pillowのインストール方法作業を始める前に、PythonとPillowが必要です。Linux環境では、Fedora、Debian/Ubuntu、ArchLinuxなどの主要ディストリビューションにおいて、以前はP
-
PythonでPDFを操作しよう!PyPDF2ライブラリの使い方を徹底解説
Pythonは多彩なライブラリを備えた非常に汎用性の高いプログラミング言語です。日常業務でよく扱うPDF(Portable Document Format)ファイルについても、Pythonにはさまざまな操作手段が用意されています。本記事では、その中でも「PyPDF2」というライブラリを使ってPDFファイルを操作する方法を解説します。 PyPDF2は純粋なPythonで実装されたPDFライブラリで、PDFページの分割・結合・切り抜き・変換が可能です。さらに、カスタムデータや表示オプション、パスワードの追加、テキストやメタデータの取得、ファイル全体のマージといった機能も備えています。 PyPDF