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 | 숫자 |