私は、複数のフレームx1からx5で構成される「ページ」というリストを持っています。私はtkraise()を使ってそれらの間をナビゲートできるようにしたい。 x1フレームには、中央にx2を上げる次のボタンのみがあり、x5にはx4を上げる前のボタンが中央にのみ表示されます。フレームx2〜x4には次と前のボタンがあり、それに応じて次と前のフレームが上がります。ボタンの位置は、互いに隣り合うように調整する必要があります。tkinter:複数のフレームと機能を持つ単一のボタンを使用
以前のボタンと次のボタンを1つだけ使用して、forループを使ってすべてを達成することは可能ですか?私はforループを使ってx2からx4までのフレームの前/次のボタンを得ることができましたが、コマンドに何を置くべきかわからないので、前の/次のフレームを上げることができます(lambda )。誰かが助けてください。それは、次/前のフレームを取得する簡単な方法であなたを離れるとframes[1:4]
の繰り返し処理
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()