【发布时间】:2021-08-09 11:50:33
【问题描述】:
如何在 python 中更改单选按钮状态?我参考了一些例子。
我依赖单选按钮:
- 选项 A 选项 B
- 选项 1 选项 2
- 选项 i 选项 ii
默认情况下,我只想选择选项 A,而其他选项被禁用。当用户选择选项 B 时,选项 A 应该关闭,然后选项 1、选项 2、选项 i 和选项 ii 激活,这意味着用户现在可以选择这些。
如何更改选项的状态并创建依赖关系?
import tkinter as tk
master = tk.Tk()
master.title("Tool")
master.geometry("700x300")
var = tk.StringVar()
var.set(' ')
def sel():
selection = (var.get())
print(selection)
if(selection==1):
R4.config(state=["disabled"])
tk.Label(master, text="SELECT --").grid(row=0, column=0, padx=10, pady=0,sticky='w')
R1 = tk.Radiobutton(master, text="Option A", variable=var, value=1, command=sel).grid(row=2,column=1)
R2 = tk.Radiobutton(master, text="Option B", variable=var, value=2, command=sel).grid(row=2,column=2)
R3 = tk.Radiobutton(master, text="Option 1", variable=var, value=3, command=sel).grid(row=3,column=1)
R4 = tk.Radiobutton(master, text="Option 2", variable=var, value=4, command=sel).grid(row=3,column=2)
R5 = tk.Radiobutton(master, text="Option i", variable=var, value=5, command=sel).grid(row=4,column=1)
R6 = tk.Radiobutton(master, text="Option ii", variable=var, value=6, command=sel).grid(row=4,column=2)
master.mainloop()
【问题讨论】:
-
"只有选项A应该被选中,其他被禁用" 如果其他都被禁用,如何选择选项B?还将这些
R1 = tk.Radiobutton(...).grid(...)分成两行R1 = tk.Radiobutton(...)和R1.grid(...)。 -
ok,,done.. 但是当我使用这个 var.get 它不工作 def sel(): selection = (var.get()) print(selection) if(var.get ()==1): R3.config(state=["disabled"]) R4.config(state=["disabled"]) R5.config(state=["disabled"]) R6.config(state=[ “禁用”]) tk.Label(master, text="SELECT --").grid(row=0, column=0, padx=10, pady=0,sticky='w') R1 = tk.Radiobutton( master, text="Option A", variable=var, value=1, command=sel) R1.grid(row=2,column=1) R2 = tk.Radiobutton(master, text="Option B", variable= var, value=2, command=sel) R2.grid(row=2,column=2)
-
这是因为
var.get()返回的值是一个字符串,因为var是StringVar()。将var更改为IntVar()或使用selection = int(var.get())。state=["disabled"]也应该是state="disabled"。
标签: python tkinter radio-button