有没有办法使用同一帧根据用户输入显示两种不同的数据布局?例如,如果我有一个按钮来使变量为true或false,是否有办法根据该变量是真还是假来在同一帧上显示不同的文本,标签和数据?像这样:
self.frame1 = Frame(root)
self.frame1.pack()
def page1(self):
self.text1 = Label(self.frame1, text='Text 1')
self.text1.pack()
def page2(self):
self.text2 = Label(self.frame1, text='Text 2')
self.text2.pack()
self.page1_or_page2 = True
if self.page1_or_page2 == True:
page1(self)
else:
page2(self)
此外,框架上的重叠数据是实现此类目标的最佳方式吗?谢谢!
答案 0 :(得分:1)
您可以通过将命令关联到将更改框架中显示的窗口小部件的“检查”按钮来执行此操作。您可以使用pack_forget
删除框架中显示的小部件,然后再打包新的小部件。
以下是一个例子:
import tkinter as tk
def toggle_details():
if variable.get():
text1.pack_forget()
text2.pack()
else:
text2.pack_forget()
text1.pack()
root = tk.Tk()
frame = tk.Frame(root)
text1 = tk.Label(frame, text='short text')
text2 = tk.Label(frame, text='short text\n------\nwith details below')
variable = tk.BooleanVar(root)
button = tk.Checkbutton(root, text='Show details', command=toggle_details, variable=variable)
text1.pack()
frame.pack()
button.pack(side='bottom')
root.mainloop()