# -*- coding: utf-8 -*-
"""
イベントハンドラの登録（command, global，リセット）
"""

import tkinter as tk


# とりあえずグローバル変数として並べておく
min_max = {"最小値":[0, 0, -10, -100], "初期値":[5, 10, 0, -30], "最大値":[10, 99, 10, 0]}
sc_var:list[tk.IntVar] = []
rdBt_var:tk.StringVar  = None

# 全てのスケールの値を，最小値・初期値・最大値のいずれかにリセット
def reset():
    i = 0
    for sc_tmp in sc_var:
        """ 指示１ここから """
        # このコメントブロックの下に，
        # ラジオボタンの値に基づいてスケールの値を設定する
        # 命令文を書きなさい．

        """ 指示１ここまで """
        i += 1

def main():
    base = tk.Tk()
    base.title("$u_id")
    base.geometry("300x200")  # ウィンドウの大きさ

    # スケールは左側に列挙
    frame1 = tk.Frame(base)
    frame1.pack(side=tk.LEFT)
    scale:list[tk.Scale] = []
    for i in range(4):
        sc_var.append(tk.IntVar(value=min_max["初期値"][i]))
        sc_tmp = tk.Scale(frame1, from_=min_max["最小値"][i], to=min_max["最大値"][i], variable=sc_var[i])
        sc_tmp.config(orient=tk.HORIZONTAL)
        sc_tmp.pack()
        scale.append(sc_tmp)

    # ラジオボタンを右側に列挙
    frame2 = tk.Frame(base)
    frame2.pack(side=tk.RIGHT)
    rdBt:list[tk.Radiobutton] = []  # ラジオボタンにした理由は，何となく
    global rdBt_var  # グローバル宣言をしないと更新（代入）できない
    rdBt_var = tk.StringVar(value="初期値")  # tk.Variable系はtk.Tk()の後でないと初期化できない
    for s in min_max:
        """ 指示２ここから """
        # このコメントブロックの下に，
        # ラジオボタンを操作すると関数resetが呼ばれるような
        # 命令文になるよう修正しなさい．

        rdBt_tmp = tk.Radiobutton(frame2, text=s, variable=rdBt_var, value=s)
        """ 指示２ここまで """
        rdBt_tmp.pack()
        rdBt.append(rdBt_tmp)

    base.mainloop()  # GUIを待機


if __name__ == "__main__":
    main()
