【发布时间】:2017-03-05 17:16:50
【问题描述】:
我有一个名为“页面”的列表,其中包含多个帧 x1 到 x5。我希望能够使用 tkraise() 在它们之间导航。 x1 框架的中心只有一个下一个按钮,可以提升 x2,x5 的中间只有一个上一个按钮,可以提升 x4。帧 x2 到 x4 将具有下一个和上一个按钮,它们将相应地提升下一个和上一个帧,并且必须调整按钮的位置以使它们彼此相邻。
是否有可能通过 for 循环仅使用一个上一个和下一个按钮来实现所有这些?我能够使用我的 for 循环在 x2 到 x4 帧中获得上一个/下一个按钮,但我不确定该命令应该放什么,以便他们可以提升相应的上一个/下一个帧(我把 ? 放在 lambda 旁边)。可能有人请帮忙。
from tkinter import *
root = Tk()
box = Frame(root)
box.pack(fill=BOTH, expand=True)
box.grid_columnconfigure(0, weight=1)
box.grid_rowconfigure(0, weight=1)
x1 = Frame(box, bg="gainsboro")
x1.grid(row=0, sticky="nsew")
x2 = Frame(box, bg="red")
x2.grid(row=0, sticky="nsew")
x3 = Frame(box, bg="blue")
x3.grid(row=0, sticky="nsew")
x4 = Frame(box, bg="green")
x4.grid(row=0, sticky="nsew")
x5 = Frame(box, bg="snow")
x5.grid(row=0, sticky="nsew")
frames = [x1, x2, x3, x4, x5]
next_button = Button(frames[0], text="Next", command=lambda: frames[1].tkraise())
next_button.pack()
previous_button = Button(frames[-1], text="Previous", command=lambda: frames[-2].tkraise())
previous_button.pack()
for x in frames[1:4]:
next_button_2 = Button(x, text="Next", command=lambda: ?)
next_button_2.pack(side=RIGHT)
previous_button_2 = Button(x, text="Previous", command=lambda: ?)
previous_button_2.pack(side=LEFT)
x1.tkraise()
root.mainloop()
【问题讨论】:
标签: python loops for-loop tkinter