Python
 Computer >> コンピューター >  >> プログラミング >> Python

Python Kivy入門:ボタンアクション(イベント処理)の実装方法

Kivyは、マルチタッチアプリなど革新的なユーザーインターフェースを持つアプリケーションを迅速に開発するためのオープンソースのPythonライブラリです。Androidアプリだけでなく、デスクトップアプリケーションの開発にも広く活用されています。

本記事では、Kivyにおいてボタンが押されたときにイベントを発生させる方法について解説します。

実装例:ボタンとラベルの連動

以下の例では、水平方向のBoxLayoutの中にボタンとラベルを1つずつ配置しています。

まず、ボタンとラベルにそれぞれ初期テキストを設定します。その後、ボタンをクリックした際に発火するイベントを作成し、このイベントによってボタンとラベルの両方のテキストを変更します。コードはすべて単一のPythonファイルで完結するシンプルな構成です。

サンプルコード

from kivy.app import App
from kivy.uix.label import Label
from kivy.uix.button import Button
from kivy.uix.boxlayout import BoxLayout
class ButtonPressApp(App):
    def __init__(self):
        super(ButtonPressApp, self).__init__()
        self.btn = Button(text='Submit Button')
        self.lbl = Label(text='Some text here.')
    def build(self):
        self.btn.bind(on_press=self.click_event)
        layout = BoxLayout()
        layout.orientation = 'horizontal'
        layout.add_widget(self.btn)
        layout.add_widget(self.lbl)
        return layout
    def click_event(self, obj):
        self.btn.background_normal=''
        self.btn.color=(1,0,0,0.8)
        self.btn.text = 'Button Pressed'
        self.lbl.text = 'Text Changed'
MainLayout = ButtonPressApp()
MainLayout.run()

実行結果

上記のコードを実行すると、以下のような結果が得られます。

ボタンを押す前

Python Kivy入門:ボタンアクション(イベント処理)の実装方法

ボタンを押した後

Python Kivy入門:ボタンアクション(イベント処理)の実装方法

ボタンが押されると、bind(on_press=...)で登録したイベントハンドラが呼び出され、ボタンの背景・文字色・テキストが変化するとともに、ラベルのテキストも「Text Changed」に更新されます。このように、Kivyではbindメソッドを使うことで、ウィジェットに対するユーザーの操作を簡単にイベントとして扱うことができます。

  1. Pythonで二分木の直径を求める方法【DFSを使った実装解説】

    二分木の直径とは二分木が与えられたとき、その木の直径(diameter)を計算することを考えます。二分木の直径とは、木の中の任意の2つのノードをつなぐ最長経路の長さのことです。重要なポイントとして、この経路は必ずしも根(ルート)を通るとは限りません。例えば、次のような木を考えてみましょう。この場合、経路 [4, 2, 1, 3] または [5, 2, 1, 3] の長さが3本の辺で構成されているため、直径は3となります。解法のアプローチこの問題はDFS(深さ優先探索)を使うことで効率的に解くことができます。手順は以下の通りです。DFSで各ノードを訪問しながら直径を求めます。まず答えを格納する変

  2. Pythonの継承とは?単一継承と階層継承の基本をサンプルコードで解説

    本記事では、Python 3.xにおける継承(インヘリタンス)とクラスの拡張方法について詳しく解説します。 継承とは、現実世界のモノや概念の関係性を自然に表現できる、オブジェクト指向プログラミングの中核となる仕組みです。継承を活用すると、次のようなメリットが得られます。 再利用性:すでに書いたコードを流用でき、重複を削減できる 推移性:クラス間の関係を連鎖的に引き継げる 開発速度の向上:ゼロから書かずに済むため、短期間で開発できる 保守性・拡張性:既存クラスを壊さずに機能を追加しやすい 継承の5つの種類 Pythonの継承は、その構造によって主に以下の5種類に分類されます。 単一継承(