tkinterチェックボックスは、tkinter checkbuttonウィジェットで作成することができます。
これにより、ユーザは複数のオプションから好きなものを選択することができます。
ラジオボタンとは異なり、ラジオボタンは1つの選択肢しか選べませんが、チェックボックスは複数の選択肢を選ぶことができます。
チェックボックスは、白いスペースを含む四角いボックスとして表示されます。
チェックボックスを選択すると、ボックスの内側にチェックマークが表示されます。
Tkinterチェックボタンの基本的な実装
まず、Tkinterモジュールをインポートし、フレーム用のジオメトリを初期化します。
from tkinter import *
root = Tk()
root.geometry( "400x400+120+120" )
root.mainloop() |
フレームを割り当てたので、Checkbox関数を使用してチェックボックスを配置します。
これは下図のようになります。
次に pack() 関数を使用して、このウィジェットを Tkinter のフレームに配置します。
c = Checkbutton(root, text = "Python" )
c.pack() c1 = Checkbutton(root, text = "C++" )
c1.pack() c2 = Checkbutton(root, text = "C" )
c2.pack() |
上記のコードは、単に3つの単純なチェックボックスを表示し、その横にテキストを表示するだけです。
関数をトリガーしていないので、これには何の機能もありません。
この点については、この記事を読んでください。
以下に、シンプルなチェックボックスの例のコード全体を示します。
試してみて、このページの最後にあるコメント欄であなたのコメントを教えてください。
from tkinter import *
root = Tk()
c = Checkbutton(root, text = "Python" )
c.pack() c1 = Checkbutton(root, text = "C++" )
c1.pack() c2 = Checkbutton(root, text = "C" )
c2.pack() root.geometry( "400x400+120+120" )
root.mainloop() |
上記のコードの出力は、以下のとおりです。
from tkinter import *
root = Tk()
root.geometry( "400x400+120+120" )
root.mainloop() |
この記事もチェック:PythonのTkinterでボタンの状態を取得、有効・無効の切り替えを実装する
Tkinterのチェックボックスの値を変数に格納する
まず、tkinter
をインポートし、Tk()
関数を使用してルートを初期化します。
また、同様にフレームのサイズも決定します。
root = Tk()
i = IntVar()
c = Checkbutton(root, text = "Python" , variable = i)
c.pack() b = Button(root,text = "Click here" ,command = click_me)
b.pack() |
フレームにはチェックボックスとボタンを配置し、以下のような構成にします。
変数 i
を初期化し、この i
はチェックボックスがチェックされていない場合は 0 を、チェックされている場合は 1 をコンソールに表示します。
def click_me():
print (i.get())
|
ボタンをクリックした後に起動する click_me()
関数は、チェックボックス用の変数に格納されている i
の値を出力します。
from tkinter import *
def click_me():
print (i.get())
root = Tk()
i = IntVar()
c = Checkbutton(root, text = "Python" , variable = i)
c.pack() b = Button(root,text = "Click here" ,command = click_me)
b.pack() root.geometry( "400x400+120+120" )
root.mainloop() |
コード全体のイメージは以下の通りです。
また、出力のスクリーンショットもアップロードしています。
上記のコードの出力は以下のとおりです。
まとめ
これでTkinterのCheckboxに関するチュートリアルは終わりです。
Tkinterのモジュールは膨大なものですが、私たちはそれを簡単に理解できるようにしたいと考えています。