Python のチェックボックスのサンプルコードです。tkinter を使用した必要最小限のサンプルとしています。Python 3 で動作確認をしています。
環境: Windows 10、Anaconda + Python 3
使い方
① デスクトップなどにフォルダを作り、”tkinter_checkbox1.py” 等のテキストファイルを作成してください。
② ①のテキストファイルに末尾のサンプルコードをコピー&ペーストして貼りつけて保存してください。
③ Anaconda や Windows のコマンドプロンプトを起動して、python (パス) tkinter_checkbox1.py 等として、実行してください。
④ チェックボックスの設定を変えて、ボタンをクリックしてください。
ボタンをクリックするとチェックボックスのチェックの有無により文字列を出力する事例としています。加えて、color1 としたところで、表示色を操作した事例としています。
動作したら、不要なところは削除して、使いたいようにアレンジしてください。
説明
スクリプトの冒頭で、tkinter をインポートしています。
def としたところで、ボタンをクリックしたときの動作を記載しています。まずは無視してください。
root となっているところ以降が、実際の動作の部分です。
ウィンドウのサイズとタイトルを設定しています。
つぎに、checkbox1, 2, 3 のチェックの有無 (True, False) を設定して、ウィンドウ上に配置する座標 x, y を指定しています。
そして、テキストボックスとボタンを配置しています。
ボタンをクリックすると click1 が実行されるように記載しています。
click1 関数は、前半の def click1(): の部分で定義しています。
ボタンが押されたら、テキストボックスに表示される文字列 str1 を生成しています。
加えて、color1 の部分で、表示色の文字列を作っています。具体的には、”#ffffff” の形式で文字列を作っています。
テキストボックス textbox1 に、str1 の文字列を出力します。また、background としたところで、色指定をしています。
ちなみに、色指定の部分では、光の三原色 RGB を加えるとどうなるかシミュレータとなるようにしています(green + blue = cyan, red + blue = magenta, red + green = yellow, red + green + blue = white)。
興味のある方は動かして確認してみてください。色指定の #FFFFFF の部分が2桁ずつ順に RGB に対応しています。ウィンドウ上でボタン等の色合いを調整するとき、上記の要領で任意の色を生成できます。
まとめ
チェックボックスの設定方法と、チェックボックスの読み出し方について、ポイントをまとめました。ボタンとテキストボックスについては以下のリンクでまとめています。最低限の基本的なオブジェクトについては本サイトで網羅したかなと思います。
関連リンク
【tkinter】 テキストボックスとボタンを使う方法 サンプルコード 【Python】
サンプルコード:チェックボックスの使い方
import tkinter as tk1
def click1():
global n1, n2, n3
str1 = ""
color1 = "#"
if n1.get():
str1 = str1 + "+red"
color1 = color1 + "ff"
else:
color1 = color1 + "00"
if n2.get():
str1 = str1 + "+green"
color1 = color1 + "ff"
else:
color1 = color1 + "00"
if n3.get():
str1 = str1 + "+blue"
color1 = color1 + "ff"
else:
color1 = color1 + "00"
textbox1.delete(0, tk1.END)
textbox1.insert( 0, str1 )
textbox1.configure( background = color1 )
return
root = tk1.Tk()
root.geometry( "350x100" )
root.title( "color calculator" )
n1 = tk1.BooleanVar()
n1.set(True)
checkbox1 = tk1.Checkbutton(root, text= 'red', variable = n1)
checkbox1.place(x=10, y=10 )
n2 = tk1.BooleanVar()
n2.set(True)
checkbox2 = tk1.Checkbutton(root, text= 'green', variable = n2)
checkbox2.place(x=80, y=10 )
n3 = tk1.BooleanVar()
n3.set(False)
checkbox3 = tk1.Checkbutton(root, text= 'blue', variable = n3)
checkbox3.place(x=150, y=10 )
textbox1 = tk1.Entry(master=root)
textbox1.place(x=10, y=50, width=200)
textbox1.insert(0, "")
btn1 = tk1.Button(root, text='calculate', command=click1)
btn1.place(x=220, y=50, width=100)
root.mainloop()