田舎社会人のいろいろ学習記

Python、英語、その他いろいろ

【tkinter】Buttonの使い方【Python】

f:id:vigilantPotato:20210519085059p:plain
Buttonはクリック時に特定の動作を設定することができるウィジェットで、使用頻度の高いウィジェットの一つ。 簡単な使用例を作成し、使用方法を整理した。


【スポンサーリンク】


Buttonの概要

Buttonは名前の通りボタンを表示するウィジェットで、commandオプションを用いてクリック時に実行する関数を設定することができる。以下、クリックするとButton is clicked!とコマンドラインに出力する例を示す。

import tkinter

#ボタンクリック時に実行する関数
def clicked():
    print("Button is clicked.")


root = tkinter.Tk()

#ボタンの生成
b = tkinter.Button(
    root,
    text="Button!",     #タイトル
    command=clicked,    #クリック時に実行する関数を設定
    )

b.pack()

root.mainloop()

ボタンのタイトルをtextオプションで設定し、クリック時に実行する関数(clicked関数)とcommandオプションで紐づけをしている。実行すると、以下の様にボタンが表示される。

f:id:vigilantPotato:20210519085253p:plain
ボタンをクリックすると、コマンドラインにButton is clicked!と表示される。

[↑ 目次へ]


【スポンサーリンク】


クリック数をカウントするボタン

より複雑な動作をするボタンを作成する。ボタンをクリックした数をカウントし、ボタン上に表示する例を以下に示す。tkinter.Buttonを継承したCountNumberButtonクラスを作成して機能を実装している。

import tkinter


#カウントアップしてタイトルに表示するボタンのクラス
class CountNumberButton(tkinter.Button):
    def __init__(self, master):
        super().__init__(
            master,
            width=15,               #ボタン幅
            text="count_start",     #初期タイトル
            command=self.count_up,  #クリック時に実行する関数
            )

        self.count_num = 0          #クリック数カウンター
        
    
    def count_up(self):             #クリック時実行する関数
        if self.count_num == 10:    #10になったら0に戻す
            self.count_num = 0
        else:
            self.count_num += 1     #カウント

        self.config(text=self.count_num)    #タイトルにカウント数を表示


if __name__ == "__main__":
    root = tkinter.Tk()

    #カウントアップボタンを生成
    b = CountNumberButton(root)
    b.pack()

    root.mainloop()

コードを実行すると、ボタンが表示される。

f:id:vigilantPotato:20210519085339p:plain

ボタンをクリックするとcount_upメソッドが実行され、count_numが+1されていく。その結果をconfigメソッドを用いてボタンのラベルに表示させている。

f:id:vigilantPotato:20210519085358p:plain

カウントが10に達すると0に戻る。

f:id:vigilantPotato:20210519085412p:plain -> f:id:vigilantPotato:20210519085425p:plain

[↑ 目次へ]


【スポンサーリンク】