Python tkinter Frame(프레임) 전환하기

이번 시간에는 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 함수를 사용해 원하는 프레임을 최상단으로 올릴 수 있습니다.

화면에 프레임하나만 출력하고 있기 때문에 버튼을 클릭할 때마다 프레임이 전환되는 효과를 줄 수 있습니다.