|
发表于 2021-11-17 10:45:07
|
显示全部楼层
请教高人 如何改变frame下button的属性 如果直接在root下是可以的 见代码
- from tkinter import *
- root = Tk()
- root.geometry('200x200')
- root.resizable(width=False, height=False)
- root.title('Button Test')
- def click_me():
- btn["text"] = "不可点"
- btn['state'] = DISABLED
- Label(root, text="button test").pack()
- # btn被点击后,调用click_me函数,将btn文案修改为:不可点,状态修改为DISABLED(置灰状态,不可点击)
- btn = Button(root, text="点我测试", command=click_me)
- btn.pack()
- btn1 = Button(root, text="我不可被点击", state=DISABLED)
- btn1.pack()
- root.mainloop()
复制代码
但套在frame下 btn1 就找不到了 见代码 这段代码想在按下按钮后将确定按钮设置成disabled
- from tkinter import *
- master = Tk()
- frame = Frame(master)
- frame.pack(padx=10, pady=10)
- v1 = StringVar()
- v2 = StringVar()
- v3 = StringVar()
- def test(content):
- return content.isdigit()
- testCMD = master.register(test)
- def callback():
- result = int(v1.get()) + int(v2.get())
- v3.set(str(result))
- btn1['state']=DISABLED
- #print(v1.get(),v2.get(),frame[btn1])
- def dele():
- v1.set("")
- v2.set("")
- v3.set("")
- e1 = Entry(frame, textvariable=v1,width=10, validate="key", validatecommand=(testCMD,"%P")).grid(row=0,column=0)
- l1 = Label(frame,text="+").grid(row=0,column=1)
- e2 = Entry(frame, textvariable=v2,width=10, validate="key", validatecommand=(testCMD,"%P")).grid(row=0,column=2)
- l2 = Label(frame,text="=").grid(row=0,column=3)
- e3 = Entry(frame, textvariable=v3,width=10, state="readonly").grid(row=0,column=4)
- btn1 = Button(frame, text="确定", command=callback).grid(row=1,column=2,pady=5)
- btn2 = Button(frame, text="清空", command=dele).grid(row=1,column=4,pady=5)
- master.mainloop()
复制代码
|
|