Coding/Python
[Python GUI] Tkinter - 2) 윈도우 창 설정/위젯 배치하기
junedev
2019. 9. 23. 16:31
Tkinter - 2) 윈도우 창 설정/위젯 배치하기
지난 포스팅에 Tkinter를 통해 윈도우 창을 생성하는 것 까지 해보았습니다.
이번 포스팅에서는 윈도우 창 설정을 하고 각종 위젯들을 배치해보도록 하겠습니다.
윈도우 창 설정
import tkinter
window=tkinter.Tk()
window.title("타이틀") # title
window.geometry("600x400+300+300")
window.resizable(True, True) # 윈도우 창 크기조절 허가여부
- title : 윈도우 창에 표시되는 title을 설정합니다.
- geometry : 윈도우 창의 크기를 (너비x높이 + x좌표 + y좌표) 로 설정합니다.
- resizable : 윈도우 창의 크기를 조절할 수 있는지, 없는지를 설정합니다.(True로 한다면 윈도우 창 크기를 조절할 수 있게 됩니다.)
실행 결과
위젯 배치하기
Tkinter에서는 기본적으로 여러 Widget을 제공하지만, 다른 GUI 프레임워크에 비하면 비교적 기본적이고,
이쁘지 않은(?) 위젯들을 제공합니다.
하지만 간단한 프로그램에는 지장이 없을 정도는 아닙니다.
Tkinter가 제공하는 위젯들은 다음과 같습니다.
위젯 | 설명 |
---|---|
Button | 단순한 버튼 |
Label | 텍스트 혹은 이미지 표시 |
CheckButton | 체크박스 |
Entry | 단순한 한 라인 텍스트 박스 |
ListBox | 리스트 박스 |
RadioButton | 옵션 버튼 |
Message | Label과 비슷하게 텍스트 표시. Label과 달리 자동 래핑 기능이 있다. |
Scale | 슬라이스 바 |
Scrollbar | 스크롤 바 |
Text | 멀티 라인 텍스트 박스로서 일부 Rich Text 기능 제공 |
Menu | 메뉴 Pane |
Menubutton | 메뉴 버튼 |
Toplevel | 새 윈도우를 생성할 때 사용. Tk()는 윈도우를 자동으로 생성하지만 추가로 새 윈도우 혹은 다이얼로그를 만들 경우 Toplevel를 사용한다 |
Frame | 컨테이너 위젯. 다른 위젯들을 그룹화할 때 사용 |
Canvas | 그래프와 점들로 그림을 그릴 수 있으며, 커스텀 위젯을 만드는데 사용될 수도 있다 |
이중 기본적인 위젯인 Label을 하나 붙여보도록 하겠습니다.
import tkinter
window=tkinter.Tk()
window.title("타이틀") # title
window.geometry("600x400+300+300") # 너비x높이+x좌표+y좌표
window.resizable(True, True) # 윈도우 창 크기조절 허가여부
label=tkinter.Label(window, text="라벨 테스트", width=10, height=5, fg="red", relief="solid", cursor="pirate") # 라벨 속성 설정
label.pack() # 위젯 배치
window.mainloop()
간단한 이미지와 텍스트를 출력하는 Label 객체를 만들어 주고, pack 메소드를 통하여 부착합니다.
Label에는 다양한 속성이 들어갈 수 있는데, 위의 코드에서 쓰인 속성은 다음과 같습니다.
- text : 위젯에 출력되는 텍스트
- width, height = 가로, 세로 길이
- fg : 텍스트 색깔
- relief : 테두리 속성
- cursor : 커서 모양(이 경우는 'pirate' 속성으로 라벨에 마우스를 올리면 해적 모양의 커서로 바뀔 것입니다.)