Tkinter チュートリアル - ボタン Button

胡金庫 2023年1月3日
Tkinter チュートリアル - ボタン Button

Tkinter ボタンウィジェット

Tkinter ボタンウィジェットは、Tkinter ラベルウィジェットに非常に似ています。ラベルのオプションとほぼ同じオプションがありますが、これ以外にデフォルト default オプションがあります。基本ボタンの例を紹介してから、このデフォルトのオプション default の詳細を紹介します。

以下のデモコードを使用して、2つの簡単なボタンを生成できます。

from sys import version_info

if version_info.major == 2:
    import Tkinter as tk
elif version_info.major == 3:
    import tkinter as tk

app = tk.Tk()
button1 = tk.Button(app, text="Python Label 1")
button2 = tk.Button(app, text="Python Label 2")
button1.pack(side=tk.LEFT)
button2.pack(side=tk.LEFT)
app.mainloop()

コードを実行すると、互いに関連する 2つのボタンが口に表示されます。

Tkinter 教程-基本按钮按钮

Tkinter ボタンデフォルトオプション default

ボタンのデフォルトオプション default は GUI におけるデフォルトボタンを通知します。簡単に言うと、ユーザーが Enter キーまたは Return キーを押すと自動的に呼び出されるボタンです。

Tkinter ボタンコマンドコールバック

ユーザーがボタンを押すと、command オプションはコールバック関数を呼び出します。

from sys import version_info

if version_info.major == 2:
    import Tkinter as tk
elif version_info.major == 3:
    import tkinter as tk


app = tk.Tk()
labelExample = tk.Button(app, text="0")


def change_label_number():
    counter = int(str(labelExample["text"]))
    counter += 1
    labelExample.config(text=str(counter))


buttonExample = tk.Button(app, text="Increase", width=30, command=change_label_number)

buttonExample.pack()
labelExample.pack()
app.mainloop()

メインウィンドウにボタンとラベルコントロールを作成しました。ボタンをクリックするたびに、ラベルテキストの数字に 1 を加算します。

Tkinter コマンドコールバック

def change_label_number():
    counter = int(str(labelExample["text"]))
    counter += 1
    labelExample.config(text=str(counter))

change_label_number この関数は、タグに表示されている数字を取得し、1 を追加してから、新しい数字を再びタグ文字として設定します。

buttonExample = tk.Button(app, text="Increase", width=30, command=change_label_number)

この文は、ボタンとコールバック関数 change_label_number をバインドします。

引数を持つ Tkinter ボタンコマンドコールバック関数

もし、フィードバック関数がパラメータを入力する必要があるなら、functools 中の partial オブジェクトが必要です。partial オブジェクトは、位置パラメータ args とキーワードパラメータ keywords を有する呼び出し可能なオブジェクトです。

以下のコードセグメントは、ボタンコマンドでこのパーティション機能を使用する方法を示します。

def change_label_number(num):
    counter = int(str(labelExample["text"]))
    counter += num
    labelExample.config(text=str(counter))


buttonExample = tk.Button(
    app, text="Increase", width=30, command=partial(change_label_number, 2)
)
著者: 胡金庫
胡金庫 avatar 胡金庫 avatar

DelftStack.comの創設者です。Jinku はロボティクスと自動車産業で8年以上働いています。自動テスト、リモートサーバーからのデータ収集、耐久テストからのレポート作成が必要となったとき、彼はコーディングスキルを磨きました。彼は電気/電子工学のバックグラウンドを持っていますが、組み込みエレクトロニクス、組み込みプログラミング、フロントエンド/バックエンドプログラミングへの関心を広げています。

LinkedIn Facebook