파이썬 GUI 프로그래밍 - tkinter

2021. 12. 14. 18:06코딩/Python

 

안녕하세요 brandy 입니다. 자바 GUI 모듈에는 java.swing과 java.awt가 있다면

파이썬에는 tkinter가 있습니다.

 

 

최근 자바 GUI 프로젝트를 진행하면서 자바 swing 그리고 awt를 중점적으로 공부했다면

파이썬 교양 수업에서는 tkinter을 사용하고 있는데요,

둘 다 윈도우 창을 열어 버튼 배치, 배치관리자 등을 설정하여 윈도우 창을 구성한다는 점에서 공통점이 많이 있었습니다.

 

 

tkinter 패키지는 파이썬 표준 인터페이스로, Tcl/Tk GUI 툴킷입니다.

Tk와 tkinter은 Unix 플랫폼에서 사용할 수 있으며 macOS, 윈도우 시스템에서도 사용 가능합니다.

 

 

tkinter를 사용하기 위한 import 방법

IDLE 모드 > from tkinter import *
 
shell 모드 > python -m tkinter
 

 

윈도우 창 생성하기

window = tkinter.Tk() 
window.mainloop()
 

자바 swing에서는 JFrame으로 윈도우 창을 엽니다.

 

윈도우이름=tkinter.Tk()를 이용하여 윈도우 창을 생성합니다.

윈도우이름.mainloop()를 사용하여 윈도우 이름의 윈도우 창을 윈도우가 종료될 때까지 실행시킵니다.

윈도우 창에서 발생하는 이벤트(클릭,드래그,버튼 등)를 윈도우 창이 끝날때까지 끝까지 유지합니다.

 

 

 

이렇게 되면 전반적인 tk 창을 여는 코드는 다음과 같습니다.

from tkinter import * 
# import tkinter 

시작 - window = tkinter.Tk() 

# window창에서 발생할 이벤트 설정

끝 - window.mainloop()
 
 

입니다.

 

윈도우이름.title("제목") - 윈도우 창의 제목 설정 가능 (자바 swing에서는 윈도우이름.setTitle)

윈도우이름.geometry("너비x높이+x좌표+y좌표") 윈도우 창의 너비와 높이 설정. 초기 화면 위치의 x좌표와 y좌표 설정 (자바 swing에서는 setBounds 값으로 컴포넌트의 x값과 y값 위치를 조정합니다)

윈도우이름.resizable는 윈도우 창 크기 변경 여부에 관해서 true/false로 값을 설정합니다. (자바 swing도 같습니다)

위젯이름=tkinter.Label(윈도우창,text="내용")을 사용하여 윈도우 창에 Label 위젯을 설정할 수 있습니다.

(자바 swing에서는 JLabel을 사용합니다)

위젯이름.pack()을 사용하여 위젯 배치 등등이 있습니다.

 

일단 간단하게 파이썬 GUI 모듈인 tkinter에 대해서 알아보았습니다.

추후에 Java GUI와 Python GUI에 대해 더 자세하게 정리해보도록 하겠습니다 :)