Python
 Computer >> コンピューター >  >> プログラミング >> Python

Python Tkinterでチェックボックスの入力値を取得する方法

チェックボックスウィジェットは、「オン(True)」と「オフ(False)」の2つの状態を持つ入力ウィジェットです。設定の有効・無効の切り替えや、利用規約への同意確認など、特定の値を検証したい場面で幅広く活用されています。

ここでは、チェックボックスが選択されたときに、その選択状態(入力値)を取得して出力する方法を紹介します。Tkinterでチェックボックスの値を取得するには、get()メソッドを使用します。このメソッドは、チェックボックスに関連付けられた変数の現在の値を返します。

サンプルコード

# Tkinterライブラリをインポート
from tkinter import *

# tkinterフレームのインスタンスを作成
win = Tk()

# ウィンドウのサイズを設定
win.geometry("700x250")

# 入力値を出力する関数を定義
def display_input():
    print("Input for Python:", var1.get())
    print("Input for C++:", var2.get())

# チェックボックスの状態を保持する変数を定義
var1 = IntVar()
var2 = IntVar()

# チェックボックスを作成
t1 = Checkbutton(win, text="Python", variable=var1, onvalue=1, offvalue=0, command=display_input)
t1.pack()
t2 = Checkbutton(win, text="C++", variable=var2, onvalue=1, offvalue=0, command=display_input)
t2.pack()

win.mainloop()

実行結果

上記のコードを実行すると、2つのチェックボックスが配置されたウィンドウが表示されます。チェックボックスをクリックするたびに display_input() 関数が呼び出され、それぞれのチェックボックスの現在の状態がコンソールに出力されます。

チェックボックスにチェックを入れると、variable に指定した IntVar 型の変数に onvalue の値(1)が格納され、チェックを外すと offvalue の値(0)が格納されます。get() メソッドを呼び出すことで、この値を取得できます。

Input for Python: 1
Input for C++: 0

ポイント解説

  • IntVar():チェックボックスの状態を保持するための整数型の特殊変数です。文字列として扱いたい場合は StringVar() を使用します。
  • onvalue / offvalue:チェックが入っているとき/外れているときに変数へ代入される値を指定します。
  • command:チェックボックスの状態が切り替わるたびに実行される関数を指定します。
  1. Tkinterでラベルのテキストを取得する方法を解説

    TkinterのLabel(ラベル)ウィジェットは、ウィンドウ上にテキストや画像を表示するために使用される基本的なコンポーネントです。フォントファミリーやパディング、幅・高さなどのオプションを指定することで、ラベルの見た目を自由にカスタマイズできます。ラベルに設定したテキストを取得したい場合は、ラベルウィジェットに対して [text] を指定するだけで、簡単にその値へアクセスできます。以下に具体的なサンプルコードを示します。サンプルコード# 必要なライブラリをインポート from tkinter import * # tkinterフレームのインスタンスを作成 win = Tk() # ウ

  2. Python Tkinterでルートウィンドウを非表示・破棄する2つの方法

    Tkinterアプリケーションのテスト中に、デフォルトのウィンドウやフレームを一時的に隠したい、あるいは完全に閉じたいという場面に遭遇することがあります。Tkinterでは、withdraw()メソッドによる「非表示」と、destroy()メソッドによる「破棄」の2つのアプローチが用意されています。mainloop()とウィンドウのライフサイクルmainloop()は、外部イベントによってウィンドウが閉じられるまで、Tkinterアプリケーションを実行し続ける役割を担います。このメインループが動作している間、ウィンドウは画面上に表示され続けます。ウィンドウを完全に破棄(終了)したい場合は、de