我正在尝试学习如何单击一个单选按钮,该按钮将在输入字段中被禁用,反之亦然。我似乎无法弄清楚我在做什么错。我认为if-elif语句会起作用,但是没有运气。任何建议将不胜感激。
附上是我的代码的简化版本。
from tkinter import *
def foo():
return v.get()
root = Tk()
root.geometry('800x600')
v = StringVar()
v.set('T-xy')
Radiobutton(root,text='P-xy',variable=v,value='P-xy',command=foo).pack()
Radiobutton(root,text='T-xy',variable=v,value='T-xy',command=foo).pack()
if foo() == 'P-xy':
Entry1 = Entry(root,state=DISABLED).pack()
Entry2 = Entry(root).pack()
elif foo() == 'T-xy':
Entry1 = Entry(root).pack()
Entry2 = Entry(root,state=DISABLED).pack()
root.mainloop()
答案 0 :(得分:1)
您需要先创建条目,然后在foo()
函数中执行条目的启用/禁用操作:
from tkinter import *
def foo():
val = v.get()
Entry1.config(state=NORMAL if val == 'T-xy' else DISABLED)
Entry2.config(state=NORMAL if val == 'P-xy' else DISABLED)
root = Tk()
root.geometry('800x600')
v = StringVar()
v.set('T-xy')
Radiobutton(root,text='P-xy',variable=v,value='P-xy',command=foo).pack()
Radiobutton(root,text='T-xy',variable=v,value='T-xy',command=foo).pack()
Entry1 = Entry(root)
Entry1.pack()
Entry2 = Entry(root,state=DISABLED)
Entry2.pack()
root.mainloop()