이번 시간에는 tkinter로 만들어진 Frame을 전환하는 방법을 살펴보겠습니다.
프레임을 지우고 다시 생성하는 방법도 있지만 프레임 내용을 유지하고 싶음으로
프레임을 만들어놓고 원하는 프레임을 최상단에 배치하는 방식을 설명합니다.
프레임 생성하기
import tkinter
window = tkinter.Tk();
window.title("Frame_Change")
window.geometry("600x600+200+200")
frame1 = tkinter.Frame(window)
frame2 = tkinter.Frame(window)
frmae3 = tkinter.Frame(window)
frame1.grid(row=0, column=0, sticky="nsew")
frame2.grid(row=0, column=0, sticky="nsew")
frame3.grid(row=0, column=0, sticky="nsew")
생성한 프레임들을 모두 윈도우에 0행 0열 같은 위치에 배치합니다.
프레임들은 모두 겹쳐져서 하나의프레임만 보이게 됩니다.
프레임 전환하기
def openFrame(frame):
frame.tkraise()
btnToFrame1 = tkinter.Button(frame3,
text="Change To Frame1",
padx=10,
pady=10,
command=lambda:[openFrame(frame1)])
btnToFrame2 = tkinter.Button(frame1,
text="Change To Frame2",
padx=10,
pady=10,
command=lambda:[openFrame(frame2)])
btnToFrame3 = tkinter.Button(frame2,
text="Change To Frame3",
padx=10,
pady=10,
command=lambda:[openFrame(frame3)])
btnToFrame1.pack()
btnToFrame2.pack()
btnToFrame3.pack()
openFrame(frame1) #기본메인화면
window.mainloop()
openFrame 함수를 사용해 원하는 프레임을 최상단으로 올릴 수 있습니다.
화면에 프레임하나만 출력하고 있기 때문에 버튼을 클릭할 때마다 프레임이 전환되는 효과를 줄 수 있습니다.