Tkinter

[Python/Tkinter] チェックボックスとラジオボタンの使い方/配置

本記事では、複数の選択肢の中から好きなだけ選択できるようにするチェックボックスと複数の選択肢の中から1つだけを選択できるようにするラジオボタンの使い方を紹介します!

すらいむ管理人

「チェックボックスやラジオボタンって何?」と思う方もいらっしゃると思いますが分かりやすく解説していきます!

☆ 記事の信頼性

自動化アプリケーション作成に携わっている私が、初心者にも分かりやすくプログラミングの基礎を紹介しています。

ブックマークするといつでも確認することができますのでよろしければ是非🔖

本記事から分かることは以下の通りです。

  • 転職のためのスキルアップとして効率的に学びたい
  • 副業としてプログラミングができるようになりたい
  • 独学での勉強に限界を感じている

これらに該当する方はプログラミングスクールがスキルアップの近道です!
是非参考にしてみてください。

未経験でも安心!
おすすめなプログラミングスクールがあります

チェックボックスの使い方

チェックボックスとは、複数の選択肢の中から好きなだけ選択するためのウィジェットです。
以下のように Tkinter の checkbutton をインスタンス化することで作成することができます。

tk.Checkbutton (  親要素  ,  text = "表示する文字列"  ,  variable = BooleanVarをあてたオブジェクト  )

この BooleanVar から得られた True と False の値からボックスにチェックが入っているかを読み取ることができるようになっています。

では、実際にコードを紹介していきます!

import tkinter as tk

def choice():
    for i in check:
        if check[i].get()==True:
            print(item[i])

item=["カバン","時計","財布","眼鏡"]  #チェックボタンに表示する文字列
check={}               #BooleanVarで帰ってくる値を格納する辞書

root=tk.Tk()
root.geometry("300x150")

#チェックボタンの作成と配置
#itemリストの要素の数だけ処理を繰り返す
#variableに辞書checkの i 番目の要素を返していく
for i in range(len(item)):
    check[i]=tk.BooleanVar()
    tk.Checkbutton(root,variable=check[i],
                   text=item[i]).pack(anchor=tk.W)

#クリック時に choice 関数を呼び出すボタン
button=tk.Button(root,text="明日必要なもの",
                 command=choice)
button.pack()

root.mainloop()

実行すると以下に示すウィンドウが表示されると思います。このウィンドウに表示されているチェックボックスに任意の個数だけチェックを入れてボタンをクリックしてみて下さい。

するとチェックした項目のみが表示されるようになったと思います。

check-box-example

anchorの意味が理解したい方はこちらの記事をどうぞ → anchorの使い方

すらいむ管理人

何か条件をGUIで指定したい場合などに使えそうですね!

ラジオボタンの使い方

ラジオボタンは、複数の選択肢の中から一つだけ選択できるようにするためのウィジェットです。

なので、、、、、

ラジオボタンで2つ以上の選択ができるようにするのは不可みたいです。


実際にラジオボタンは以下のように Tkinter の Radiobutton をインスタンス化することで作成することができます。

tk.Radiobutton (  親要素  ,  text = "表示する文字列"  ,  value = ラジオボタンを識別するためのint値,
          variable = IntVarをあてたオブジェクト  )

では実際に以下のコードを入力し実行してみて下さい。

import tkinter as tk

def choice():
   select=val.get()
   print(item[select])

item=["カバン","時計","財布","眼鏡"]

root=tk.Tk()
root.geometry("300x150")
val=tk.IntVar() #IntVarクラスで各ボタン同士の紐づけ

#itemリストの要素の数だけ処理を繰り返す
for i in range(len(item)):
    tk.Radiobutton(root,value=i,variable=val,
                   text=item[i]).pack(anchor=tk.W)

button=tk.Button(root,text="明日必要なもの",
                 command=choice)
button.pack()

root.mainloop()

実行すると以下に示すウィンドウが表示されると思います。このウィンドウに表示されているチェックボックスを一つ選択しボタンをクリックしてみて下さい。

するとチェックした項目が表示されるようになりました!

radio-button-example

anchorの意味が理解したい方はこちらの記事をどうぞ → anchorの使い方

以上になります。最後まで見ていただきありがとうございました!

次の記事では、ウィンドウ上部にメニューバーを表示させる方法について解説しています。是非参考にしてみて下さい!