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' 속성으로 라벨에 마우스를 올리면 해적 모양의 커서로 바뀔 것입니다.)