我对三个单选按钮有一个问题,它们接受一次性选择所有按钮。如何防止这种情况发生,当我按下另一个按钮时,选择会从第一个按钮返回?
pen_size_1 = customtkinter.CTkRadioButton(pen_size_frame,
text="Small",
value=3,
command=lambda: change_size(3),
state="normal",
fg_color="#ad85b9",
hover_color= "#a655be",
)
pen_size_1.pack(side="left")
pen_size_2 = customtkinter.CTkRadioButton(pen_size_frame,
text="Medium",
value=5,
command=lambda: change_size(5),
fg_color="#ad85b9",
hover_color= "#a655be",
)
pen_size_2.pack(side="left")
pen_size_3 = customtkinter.CTkRadioButton(pen_size_frame,
text="Large",
value=7,
command=lambda: change_size(7),
state="normal",
fg_color="#ad85b9",
hover_color= "#a655be"
)
pen_size_3.pack(side="left")
正如 acw1668 的评论中已经提到的那样,您必须为所有单选按钮引入一个
IntVar
来存储所选单选按钮的值:
pen_size_var = tkinter.IntVar(3) # set start value here
pen_size_1 = customtkinter.CTkRadioButton(pen_size_frame,
text="Small",
value=3,
variable=pen_size_var,
state="normal",
fg_color="#ad85b9",
hover_color="#a655be",)
pen_size_1.pack(side="left")
pen_size_2 = customtkinter.CTkRadioButton(pen_size_frame,
text="Medium",
value=5,
variable=pen_size_var,
fg_color="#ad85b9",
hover_color="#a655be",)
pen_size_2.pack(side="left")
pen_size_3 = customtkinter.CTkRadioButton(pen_size_frame,
text="Large",
value=7,
variable=pen_size_var,
state="normal",
fg_color="#ad85b9",
hover_color="#a655be")
pen_size_3.pack(side="left")
无论您的
change_size()
函数设置什么变量,现在都可以替换为 pen_size_var