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

Tkinter Python

Radiobuttonとは?

Radiobuttonは、複数の選択肢から選択することを要求する場合に使用されます。
Checkbuttonは、onvalueとoffvalueでそれぞれ値を持ちます。それに対し、Radiobuttonは、valueしか持ちません。

Radiobuttonの実装

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

def button_push():
    print(val.get())

#メインウィンドウの生成
root = Tk()
#ウィンドウのタイトル
root.title('Application')
#Frame生成
frame = ttk.Frame(
    root,
    padding = (30, 20)
    )
#文字列を得るオブジェクトを生成
val = StringVar()
#初期値は空なので'A'を代入
val.set('A')
#Radiobutton生成
radiobutton1 = ttk.Radiobutton(
    frame,
    text = 'A', #表示する文字
    command = button_push, #ラジオボタンが押された時に実行する関数
    value = 'A', #チェックが入っているときに格納するデータ
    variable = val, #データを格納するオブジェクト
)
radiobutton2 = ttk.Radiobutton(
    frame,
    text = 'B', #表示する文字
    command = button_push, #ラジオボタンが押された時に実行する関数
    value = 'B', #チェックが入っているときに格納するデータ
    variable = val, #データを格納するオブジェクト
)
radiobutton3 = ttk.Radiobutton(
    frame,
    text = 'C', #表示する文字
    command = button_push, #ラジオボタンが押された時に実行する関数
    value = 'C', #チェックが入っているときに格納するデータ
    variable = val, #データを格納するオブジェクト
)

#ウィンドウ内にFrameを表示
frame.grid()
#Frame内にRadiobuttonを表示
radiobutton1.grid()
radiobutton2.grid()
radiobutton3.grid()

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

Radiobutton 説明01

# 押された時
B
C
A
B

3つの選択肢があるラジオボタンを作成します。
ラジオボタンは、variable属性で指定する変数を同じにすることで、複数(今回の場合は3つ)の選択肢の内のどれかにしか、チェックを入れることができません。(複数選択不可)
value属性で指定した変数の初期値は空となっているため、”val.set(‘A’)”とすることで、ラジオボタン”A”が初めから押された状態にできます。

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

オプション 説明
text ウィジェット内に表示されるテキスト text = ‘OK’
textvariable テキストを格納するオブジェクトを指定
width 横幅 width = 20
padding 内側の空白の部分の長さを指定
引数1つ:上下左右全てが同じ
引数2つ:上下と左右が同じ
引数4つ:上下左右各々指定
padding = (30, 10)
command ラジオボタンを押した時に呼び出される関数を指定 command = 関数
value チェックが入っているときに格納するデータ value = ‘A’
variable データを格納するオブジェクト variable = val
state 状態(normal, active, disabled) state = “normal”
image 画像
compound 画像の位置(top, bottom, left, right) compound = ‘top’

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

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

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

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

コメント

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