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

【Python】Tkinterでボタンクリック時に複数のコマンドを実行する方法

TkinterのButtonウィジェットは、アプリケーションが持つさまざまな機能をユーザーの操作で呼び出すための重要なインターフェースです。通常、1つのボタンには1つの関数(コールバック)を割り当てますが、開発していると「1回のクリックで複数の処理を同時に実行したい」というケースに出会うことがあります。

そんなときに便利なのがlambda(ラムダ)関数です。lambdaを使えば、複数の関数やイベントをまとめて1つのボタンに関連付けることができます。

実装例

ここでは、1つのボタンに複数の処理を割り当てる例を紹介します。ボタンをクリックすると、ラベルにメッセージが表示されると同時に、リストボックスにプログラミング言語の一覧が表示される仕組みです。

# Tkinterライブラリをインポート
from tkinter import *

# Tkinterフレームのインスタンスを作成
win = Tk()

# ウィンドウのサイズを設定
win.geometry("700x350")

# 関数を定義
def display_msg():
    label.config(text="Top List of Programming Language")

def show_list():
    listbox = Listbox(win, height=10, width=15, bg='grey', activestyle='dotbox', font='aerial')
    listbox.insert(1, "Go")
    listbox.insert(1, "Java")
    listbox.insert(1, "Python")
    listbox.insert(1, "C++")
    listbox.insert(1, "Ruby")
    listbox.pack()
    button.destroy()

# メッセージを表示するLabelウィジェットを作成
label = Label(win, text="", font=('aerial 18 bold'))
label.pack(pady=20)

# Buttonウィジェットを定義
button = Button(win, text="Click Here", command=lambda: [display_msg(), show_list()])
button.pack()
win.mainloop()

ポイント

このコードの鍵となるのは、commandオプションに渡している lambda: [display_msg(), show_list()] の部分です。lambda関数の中で複数の関数をリスト形式で並べることで、ボタンがクリックされたときにそれらが順番に実行されます。

実行結果

上記のコードを実行すると、ボタンが配置されたウィンドウが表示されます。

【Python】Tkinterでボタンクリック時に複数のコマンドを実行する方法

ボタンをクリックすると、2つの処理が続けて実行されます。具体的には、ラベルウィジェットにメッセージが表示され、その下に文字列のリスト(Listbox)が追加されます。

【Python】Tkinterでボタンクリック時に複数のコマンドを実行する方法

  1. Python tkinterでボタンを作成する方法|標準tkinterとttkの違いも解説

    PythonのGUIライブラリ「Tkinter」には、ウィンドウ上にボタンを作成するためのさまざまな方法が用意されています。この記事では、標準のtkinterモジュールを使ったボタンの作成方法と、テーマ機能を持つtkinter.ttkモジュールを使ったボタンの作成方法の2通りを、サンプルコードとともにわかりやすく解説します。 tkinterモジュールでボタンを作成する 以下のプログラムでは、まずウィンドウを作成し、続いてButtonクラスを使ってボタンを生成しています。tkinterモジュール全体をインポートしているため、作成されたボタンには従来型のスタイル(テーマ)が適用されます。 主なパラ

  2. Python Tkinterでボタンにスタイルを適用する方法を解説

    Tkinterは、PythonでGUIアプリケーションを構築するための標準ツールキットであり、直感的なインターフェース開発を強力にサポートします。ボタンのスタイリングにおいても、フォント、サイズ、文字色などを自由にカスタマイズできる柔軟な仕組みが用意されています。本記事では、キャンバス上の特定のボタンだけにスタイルを適用する方法と、すべてのボタンに一括でスタイルを適用する方法を、具体的なコード例とともに解説します。特定のボタンにスタイルを適用するまず、キャンバス上に2つのボタンが配置されており、1つ目のボタンにのみスタイルを適用したいケースを考えてみましょう。この場合は、ttkのStyleクラ