「Python3」Tkinter Ver.8.6(Buttonの作成と設定方法)

Tkinter Python

Buttonとは?

Buttonウィジェットは、名前の通り、ボタンを作成することができます。

Buttonの使用方法

<ソースコード>
from tkinter import *
from tkinter import ttk
from tkinter import font

def button_push():
    print('OK')

#メインウィンドウの生成
root = Tk()
#ウィンドウのタイトル
root.title('Application')

#Frame生成
frame = ttk.Frame(
    root,
    padding = (30, 30)
    )

style = ttk.Style()
style.configure(
    "BR.TButton",
    foreground = "#000000",
    background = "red",
)

#Button生成
button = ttk.Button(
        frame,
        text = 'OK', #表示する文字
        width = str('OK'), #横幅
        padding = (30, 0), #隙間
        command = button_push, #押されたら実行する関数
        default = NORMAL, #ボタンの状態の初期値
        style = "BR.TButton", #スタイル
        )

#ウィンドウ内にFrameを表示
frame.grid()
#Frame内にButtonを表示
button.grid()

#ウィンドウ表示
root.mainloop()
<出力結果>

Button 説明01

#ボタンを押すと
OK

Buttonの指定できるオプションをまとめます。

オプション 説明
text ウィジェット内に表示されるテキスト text = ‘OK’
textvariable テキストを格納するオブジェクトを指定
width 横幅 width = 30,
padding 内側の空白の部分の長さを指定
引数1つ:上下左右全てが同じ
引数2つ:上下と左右が同じ
引数4つ:上下左右各々指定
padding = (30, 10)
image 画像
compound 画像の位置(top, bottom, left, right) compound = ‘top’
command ボタンを押した時に呼び出される関数を指定 command = 関数
default 初期のボタンの状態 default = NORMAL
state 現在のボタンの状態
style スタイル

stateオプションを表にまとめます。

stateオプション 説明
normal 通常の状態
active マウスカーソルがウィジェットの上にあり、マウスをクリックすることで何らかの動作をさせる
disabled プログラムによってウィジェットを無効化する
focus ウィジェットにキーボードフォーカスをする
pressed ウィジェットは押されている
selected チェックボタンやラジオボタンのようなウィジェットでの “オン” や “チェック有” や “選択中” に当たる
background Windows と Mac には “アクティブな” もしくは最前面のウィンドウという概念がある
背面のウィンドウにあるウィジェットには background 状態が設定され、最前面のウィンドウにあるウィジェットでは解除される
readonly ウィジェットはユーザからの変更を受け付けない
alternate ウィジェット特有の切り替え表示
invalid ウィジェットの値が不正

ボタンの中に画像を表示する

<ソースコード>
from tkinter import *
from tkinter import ttk

def button_push():
    print('OK')

#メインウィンドウの作成
root = Tk()
#ウィンドウのタイトル
root.title('Application')
#Frame生成
frame = ttk.Frame(root)
#Button生成
img = PhotoImage(file = 'icon.png')

button = ttk.Button(
        frame,
        image = img, #表示する画像
        text = 'OK', #表示する文字
        width = 30, #横幅
        padding = (30, 10), #隙間
        command = button_push, #押されたら実行する関数
        compound = 'top' #画像位置(top, bottom, left, right)
        )

#ウィンドウ内にFrameを表示
frame.grid()
#Frame内にButtonを表示
button.grid()

#ウィンドウ表示
root.mainloop()
<出力結果>

Button 説明02

#ボタンを押すと
OK

“compound”オプションは、文字列と画像の位置関係になります。

指定 画像の位置
top 文字列の上に画像を表示する
bottom 文字列の下に画像を表示する
left 文字列の左に画像を表示する
right 文字列の右に画像を表示する

コメント

タイトルとURLをコピーしました