Tkinter チュートリアル - ラジオボタン Radiobutton

  1. Tkinter ラジオボタンの基本的な例
  2. Tkinter ラジオボタン-値を取得
  3. Tkinter ラジオボタンインジケータータイプの変更
  4. Tkinter バインドラジオボタンコールバック関数

前のセクションでは、ラベルボタンチェックボタンについて学習しました。Tkinter ウィジェットには、非常によく似たオプション、プロパティ、またはメソッドがあります。したがって、このセクションからは、速いペースで学習できます。

Radiobuton は多くのボタンの 1つです。選択には複数のオプションがありますが、ユーザーはそのうちの 1つしか選択できませんでした。前に紹介したウィジェットと同じように、Radibutton にはテキストまたは画像を含めることができ、コールバック関数またはメソッドをそれにバインドできます。このコールバック関数は、そのボタンが押されると自動的にトリガーされます。

Tkinter ラジオボタンの基本的な例

import tkinter as tk
 
app = tk.Tk() 
app.geometry('150x100')

radioValue = tk.IntVar() 

 
rdioOne = tk.Radiobutton(app, text='January',
                             variable=radioValue, value=1) 
rdioTwo = tk.Radiobutton(app, text='Febuary',
                             variable=radioValue, value=2) 
rdioThree = tk.Radiobutton(app, text='March',
                             variable=radioValue, value=3)

rdioOne.grid(column=0, row=0)
rdioTwo.grid(column=0, row=1)
rdioThree.grid(column=0, row=2)

app.mainloop()

上記のラジオボタンの基本デモの結果は以下のとおりです

Tkinter Checkbutton の基本的な例

radioValue = tk.IntVar()

チェックボタンと同様に、ラジオボタンは特定のデータ型の値を関連付ける必要があります。

rdioOne = tk.Radiobutton(app, text='January',
                             variable=radioValue, value=1) 
rdioTwo = tk.Radiobutton(app, text='Febuary',
                             variable=radioValue, value=2) 
rdioThree = tk.Radiobutton(app, text='March',
                             variable=radioValue, value=3)

ここでは、JanuaryFebruaryMarch のテキストのボタンがここに作成されます。同じグループ内のラジオボタンは、一意の値を持つ必要があります。

質問

値が重複している場合はどうなりますか?

Tkinter ラジオボタン-値を取得

上記の例に示すように、同じグループのラジオボタンは同じ変数 radioValue を共有し、value オプションで異なる値が割り当てられます。

選択したラジオボタンの値は、変数 radioValue a を自動的に更新します、これは tk.IntVar 型です。

ラベルテキストは、以下のサンプルコードで選択したボタンの値を自動表示します。

import tkinter as tk
 
app = tk.Tk() 
app.geometry('200x100')

radioValue = tk.IntVar() 

 
rdioOne = tk.Radiobutton(app, text='January',
                             variable=radioValue, value=0) 
rdioTwo = tk.Radiobutton(app, text='Febuary',
                             variable=radioValue, value=1) 
rdioThree = tk.Radiobutton(app, text='March',
                             variable=radioValue, value=2)

rdioOne.grid(column=0, row=0, sticky="W")
rdioTwo.grid(column=0, row=1, sticky="W")
rdioThree.grid(column=0, row=2, sticky="W")

labelValue = tk.Label(app, textvariable=radioValue)
labelValue.grid(column=2, row=0, sticky="E", padx=40)

app.mainloop()

labelValue ラベルが同じであるラベルテキストが自動的に更新できそうという、ラジオボタンのオプション。

labelValue ラベルのテキスト変数 textvariable はラジオボタンのオプション変数 variable と同じであるため、ラベルのテキストは自動的に更新できます。

Tkinter Radiobutton\_get 値

Tkinter ラジオボタンインジケータータイプの変更

デフォルトのラジオボタンインジケータは、内部に空白のある円形の穴ですが、テキストまたは画像を含むボックスに置き換えることもできます。ラジオボタンが選択されていない場合はテキストボックスが表示され、押すと凹みが発生します。

Tkinter チュートリアル Radiobutton Raised and Sunken

rdioOne = tk.Radiobutton(app, text='I am raised',
                             variable=radioValue, value=1,
                             indicatoron = 0) 

indicatoron はラジオボタンの円形ホールインジケータを有効または無効にするオプションです。indicatoron = indicator on です。

Tkinter バインドラジオボタンコールバック関数

ボタンコールバック関数の設定方法のオプションは、Tkinter Checkbutton とまったく同じです。オプション command= を使用します。

comments powered by Disqus