0
0

More than 1 year has passed since last update.

Tkinterのmenuで選択されたradiobuttonに設定されたvalueを取得する方法

Last updated at Posted at 2022-02-07

概要

Tkinterで作成したmenuradiobuttonが選択されたとき、選択されたほうのvalueを取得する方法を記載します。

画像でいえば、1に設定されたvalueを取得したいということになります。

tkinter-menu.png

動機

radiobuttonと紐付ける関数は同じものにして、引数で処理を変更したい。
引数としてはradiobuttonvalueを使いたい。

方法

add_radiobuttonメソッドのvariable引数に、StringVarを渡します。
文字列ではなく数値型が欲しい場合はIntVarを渡す。

サンプルコード

example.py
import tkinter as tk


class Menu(tk.Menu):
    def __init__(self, master=None):
        tk.Menu.__init__(self, master)
        master.bind("<Button-3>", self.create_menu)

        self.string_var: tk.StringVar = tk.StringVar()
        self.string_var.set("")

    def create_menu(self, event=None):
        self.post(event.x_root, event.y_root)

    def set_value_for_menu(self):

        self.add_radiobutton(label="1", value="hogehoge-1", variable=self.string_var, command=self.print_select_menu_item)
        self.add_radiobutton(label="2", value="hogehoge-2", variable=self.string_var, command=self.print_select_menu_item)

    def print_select_menu_item(self, event=None):
        print(self.string_var.get())


if __name__ == "__main__":
    root: tk.Tk = tk.Tk()
    menu: Menu = Menu(root)
    menu.set_value_for_menu()
    root.mainloop()
出力結果
1を押した場合:
    hogehoge-1

2を押した場合
    hogehoge-2
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0