Python グラフィカル インターフェイスの基本: Tkinter ウィンドウにラジオ ボタン (Radiobutton) を追加する

導入

Pythonグラフィカル インターフェイスの基本に関するこの記事では、 Tkinterにラジオ ボタン ( Radiobutton )を追加する方法に焦点を当てますラジオ ボタンは、オプションを選択するために使用されるGUI要素です。ラジオ ボタンは、アプリケーション オプションの設定、個別の選択、またはデータのフィルターに使用する場合に便利です。この記事では、 Tkinterウィンドウにラジオ ボタンを追加する方法と、ユーザーによる選択を取得する方法を詳しく説明します。

Tkinter のラジオボタンとは何ですか?

Tkinterのラジオボタンは、オプションを選択するために使用されるGUI要素です。ラジオ ボタンは通常、相互に排他的なオプションのセットに使用され、ユーザーはその中から 1 つだけを選択できます。通常、ラジオ ボタンは関連するオプションのグループをグループ化し、ユーザーがオプションの 1 つを選択できるようにし、他のオプションを選択すると前の選択が自動的にキャンセルされます。

Tkinterウィンドウにラジオ ボタンを追加する方法を学び始めましょう

ステップ 1: Tkinter モジュールをインポートする

まず、 PythonがインストールされていてTkinterライブラリが含まれていることを確認します。次に、 PythonスクリプトにTkinterモジュールをインポートして、Tkinterライブラリの機能を使用します

import tkinter as tk

ステップ 2: Tkinter ウィンドウを作成する

Tkinterを使用する前に、通常 と呼ばれるTkinterウィンドウ オブジェクトを作成する必要がありますrootこのウィンドウは、 GUIアプリケーションのメイン ウィンドウとして機能します

root = tk.Tk()

ステップ 3: ラジオボタンを作成する (Radiobutton)

ラジオ ボタンを作成するには、Radiobuttonクラスを使用できます。単純なラジオ ボタンを作成する例を次に示します。

# 创建一个StringVar变量以存储单选按钮的值
radio_var = tk.StringVar()

# 创建单选按钮
radio_button1 = tk.Radiobutton(root, text="选项1", variable=radio_var, value="选项1")
radio_button2 = tk.Radiobutton(root, text="选项2", variable=radio_var, value="选项2")

上の例では、ラジオ ボタンの値を格納するStringVarタイプの変数を作成しました。radio_var次に、2 つのラジオ ボタンradio_button1と を作成してウィンドウradio_button2にアタッチし、各ラジオ ボタンのテキストと値を設定しました。root

ステップ 4: ラジオ ボタンの値を取得する

ユーザーが選択したラジオ ボタンの値を取得するには、get()メソッドを使用して、ラジオ ボタンに関連付けられた変数にアクセスします。以下に例を示します。

selected_option = radio_var.get()

この例では、get()メソッドを使用して、ユーザーが選択したラジオ ボタンの値を取得し、変数 に格納しますselected_option

ステップ 5: ウィンドウにラジオ ボタンを追加する

ラジオ ボタンを作成したら、pack()メソッドを使用してウィンドウにラジオ ボタンを追加する必要があります。これにより、ウィンドウ内のラジオ ボタンの位置が決まります。

radio_button1.pack()
radio_button2.pack()

pack()このメソッドは、ウィンドウのサイズと内容に基づいてラジオ ボタンの位置を自動的に調整します。

完全なサンプルコード

以下は、 Tkinterウィンドウを作成し、そこに 2 つのラジオ ボタンを追加し、ボタンがクリックされたときにユーザーが選択したオプションを取得する方法を示す完全なサンプル コードです。

import tkinter as tk

# 创建Tkinter窗口
root = tk.Tk()
root.title("Tkinter单选按钮示例")

# 创建一个StringVar变量以存储单选按钮的值
radio_var = tk.StringVar()

# 创建单选按钮1
radio_button1 = tk.Radiobutton(root, text="选项1", variable=radio_var, value="选项1")

# 创建单选按钮2
radio_button2 = tk.Radiobutton(root, text="选项2", variable=radio_var, value="选项2")

# 创建按钮点击事件处理程序
def button_click():
    selected_option = radio_var.get()
    label.config(text="你选择的选项是:" + selected_option)

# 创建按钮
button = tk.Button(root, text="获取选择", command=button_click)

# 创建标签
label = tk.Label(root, text="")

# 将单选按钮、按钮和标签添加到窗口
radio_button1.pack()
radio_button2.pack()
button.pack()
label.pack()

# 启动Tkinter主事件循环
root.mainloop()

コードの説明

上記のコードを 1 行ずつ説明してみましょう。

  • まず、Tkinterライブラリの機能を使用するために、Tkinterモジュールをインポートしました。

  • 次に、 Tkinterウィンドウ オブジェクトを作成しroot、ウィンドウのタイトルを「Tkinter Radio Button Example」に設定しました。

  • ラジオ ボタンの値を格納するStringVar型の変数を作成します。radio_var

  • 次に、2 つのラジオ ボタンradio_button1と を作成してウィンドウradio_button2にアタッチし、各ラジオ ボタンのテキストと値を設定しました。root

  • button_clickボタンがクリックされたときに実行される という名前のボタンクリックイベントハンドラーを定義します。この例では、get()メソッドを使用して、ユーザーが選択したラジオ ボタンの値を取得し、その値に基づいてラベルのテキストを更新します。

  • button を作成しbutton、ボタン上のテキストを「Get Selection」に設定し、button_clickイベント ハンドラーをボタンのクリック イベントに関連付けます。

  • label最後に、ユーザーが選択したオプションを表示するラベルを作成します。

  • pack()メソッドを使用してラジオ ボタン、ボタン、ラベルをウィンドウに追加し、 Tkinter のメイン イベント ループを開始しまし

ラジオボタンのプロパティをカスタマイズする

基本的なラジオ ボタンに加えて、ラジオ ボタンの外観と動作をカスタマイズできます。ラジオボタンのフォント、文字色、背景色、選択時の応答機能などを設定できます。以下は、ラジオ ボタンのプロパティをカスタマイズする方法を示す例です。

# 创建一个自定义样式的单选按钮
custom_radio_button = tk.Radiobutton(
    root,
    text="自定义选项",
    font=("Helvetica", 12),    # 设置字体和字号
    fg="green",                # 设置文本颜色
    bg="lightgray",            # 设置背景颜色
    selectcolor="red",         # 设置选中时的颜色
    command=custom_function    # 设置单选按钮选中时的响应函数
)

# 将自定义单选按钮添加到窗口
custom_radio_button.pack()

上の例では、カスタム スタイルのラジオ ボタンを作成し、フォント、テキストの色、背景色、選択した色、および選択した応答関数を設定しました。

結論は

この記事では、 Tkinterウィンドウにラジオ ボタンを追加する方法と、ユーザーによる選択を取得する方法を学びました。ラジオ ボタンは、GUIアプリケーションで相互に排他的なオプションのセットを提供するために一般的に使用される要素です。ラジオ ボタンを作成およびカスタマイズすることで、アプリケーションに対話性と機能をさらに追加できます。次のチュートリアルでは、追加のGUI要素を追加する方法、さまざまな種類のイベントを処理する方法、およびより豊富で強力な GUI アプリケーションを構築する方法を学習していきます。学び続ければ、より興味深く便利なGUIアプリケーションを作成できるようになります

おすすめ

転載: blog.csdn.net/qq_38161040/article/details/132839458