Python tkinter Frame (프레임)

Python tkinter Frame에 대해 살펴보겠습니다.

Frame은 여러 위젯들을 포함하는 틀(Frame) 입니다.

 

Frame 만들기

Frame은 tkinter에 Frame(window) 함수로 생성합니다.

매개변수로 Frame이 생성될 window를 넣어줘야 합니다.

생성한 후 pack() 함수로 프레임을 화면 안에 배치합니다.

import tkinter
win = tkinter.Tk();

frame = tkinter.Frame(win);
frame.pack();

win.mainloop();

프레임을 간단하게 생성하였습니다.

 

이제는 실전처럼 프레임을 만들고 프레임 내의 위젯을 배치하는 예제를 살펴보겠습니다.

import tkinter
win = tkinter.Tk();

#Frame 만들기
frame1 = tkinter.Frame(win, relief='solid', bd=2);
frame1.pack(side='left', fill='both', expand=True);
frame2 = tkinter.Frame(win, relief='solid', bd=2);
frame2.pack(side='right', fill='both', expand=True);

# label Widget 만들어 각각 Frame에 배치하기
label1 = tkinter.Label(frame1, text='frame1', relief='solid');
label1.pack();
label2 = tkinter.Label(frame2, text='frame2', relief='solid');
label2.pack();

win.mainloop();

Window 안에 2개의 Frame을 만들고 각 Frame별로 라벨을 배치했습니다.

실제 실행해보시면 아래와 같은 결과가 나타납니다.

 

Frame의 옵션은 Frame을 선언하면서 설정해도 되고

config() 함수를 통해 선언 이후 옵션을 설정해줄 수 도 있습니다.

옵션들을 살펴보겠습니다.

 

Frame의 옵션들

1. Frame의 동작 관련

이름 기능 기본값 속성
takefocus Tab키를 이용하여 위젯 이동 허용 False Boolean
container 응용 프로그램이 포함될 컨테이너로 사용 False Boolean

 

2. Frame의 디자인 관련

이름 기능 기본값 속성
width Frame의 길이 0 숫자
height Frame의 높이 0 숫자
relief Frame의 테두리 모양 flat solid, raised, groove, flat, sunken, ridge
background Frame의 배경 색상 SystemButtonFace color
cursor Frame내 마우스 커서모양   pointer, arrow 등 cursor속성
padx Frame의 가로 내부여백
( padding )
1 숫자
pady Frame의 세로 내부여백
( padding )
1 숫자
highlightcolor Frame이 선택되었을때 하이라이트 색상 SystemWindowFrame color
highlightbackground Frame이 선택되지 않았을때 하이라이트 색상 SystemButtonFace color
highlightthickness Frame이 선택되었을때 두께 0 숫자