Этот код требует двух нажатий после выбора первой кнопки. 1, чтобы очистить старый меточный кадр и перенастроить кнопки, 2, чтобы создать новый кадр.
Можете ли вы сделать так, чтобы это работало в один клик?
Я переключаюсь между кадрами в один клик. Я хочу, чтобы рамка соответствующей кнопки открывалась одновременно.
from tkinter import *
root=Tk()
root.state('zoomed')
def remove_frame(lf):
lf.destroy()
a.config(command=A1)
b.config(command=A2)
c.config(command=A3)
def A1():
a.configure(relief=SUNKEN,state=DISABLED)
b.configure(relief=RAISED,state=ACTIVE)
c.configure(relief=RAISED,state=ACTIVE)
lf=LabelFrame(root,text='one')
lf.pack()
e=Button(lf,text='one')
e.pack()
b.config(command=lambda: remove_frame(lf))
c.config(command=lambda: remove_frame(lf))
def A2():
a.configure(relief=RAISED,state=ACTIVE)
b.configure(relief=SUNKEN,state=DISABLED)
c.configure(relief=RAISED,state=ACTIVE)
lf=LabelFrame(root,text='two')
lf.pack()
e=Button(lf,text='two')
e.pack()
a.config(command=lambda: remove_frame(lf))
c.config(command=lambda: remove_frame(lf))
def A3():
a.configure(relief=RAISED,state=ACTIVE)
b.configure(relief=RAISED,state=ACTIVE)
c.configure(relief=SUNKEN,state=DISABLED)
lf=LabelFrame(root,text='three')
lf.pack()
e=Button(lf,text='three')
e.pack()
a.config(command=lambda: remove_frame(lf))
b.config(command=lambda: remove_frame(lf))
l=LabelFrame(root,padx=30,pady=20)
l.pack(padx=0,pady=18)
a=Button(l,text="1",command=A1)
a.grid(row=0,column=1)
b=Button(l,text="2",command=A2)
b.grid(row=0,column=2)
c=Button(l,text="3",command=A3)
c.grid(row=0,column=3)
d=Button(l, text="4",command=root.quit)
d.grid(row=0,column=4)
mainloop()