Python - 我的 CTkRadioButtons 接受多个选择

问题描述 投票:0回答:1

我对三个单选按钮有一个问题,它们接受一次性选择所有按钮。如何防止这种情况发生,当我按下另一个按钮时,选择会从第一个按钮返回?

    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")
python user-interface tkinter radio-button customtkinter
1个回答
0
投票

正如 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

© www.soinside.com 2019 - 2024. All rights reserved.