대학시절에 MFC나 Java Swing 을 했던 추억을 떠올리면서, 맛보기 하는 정도로 흝어볼 예정이다. 

Python 설치시에 기본적으로 GUI Toolkit 인 Tkinter가 같이 설치된다. 좀더 열정이 있었다면 Wxpy, PyQt4, Kivy 등등의

파이선 GUI 툴에 대해서 소개를 하겠지만.. 그건 힘들거 같다. 

일단 간단한 예제로 워밍업

아래 코드는 간단하게 버튼이 하나 있는 창이 열리고 그 버튼을 누르면 창이 닫히는 매우 간단한 프로그램이다.

1 : Tkinter 를 위해서 import

2 : 버튼에 Binding될 이벤트 함수

5:  메인 윈도우를 생성

7: 메인 윈도우 위에 text에 들어가있는 캡션을 가지고 버튼을 생성

9: 첨에 이놈은 뭐하는것인고(?) 라고 생각했는데 버튼이 차지할 레이아웃을 지정한거다. 

11 : 버튼 클릭 이벤트 바인딩 

13 : root.mainloop() 는 이벤트 루프를 실행시키는 부분인데 클릭되면 이벤트 핸들러가 동작한다


실행화면


와우 !!!대한민국만세가 와도 만들정도의 예제를 만들어 봤다.  민망할정도다.


이제 사랑이가 와서 만들만한 예제 하나 더 만들어보자.

이번에는 버튼을 2개 만들고 하나를 누르면 라벨에 MILO WORLD ! 라고 출력이 되고 다른 버튼을 누르면 창

이 닫히는 프로그램을 만들어보자. 위에서 만든 예제를 좀 바꿔서 만들어보자.



위 예제에서 버튼과 라벨을 하나 더 추가하고, 버튼에 따른 이벤트를 추가하고, 버튼이 눌렀을때 라벨값을 변경했다.

주의할점은 line:10 과 line:13 에 있는 bind 함수인데... 난 첨에 이 이벤트 핸들링을 위한 특정 ID를 파라미터로

넘기는줄 알았는데... 저게 이벤트 키다. Button-1 이라는 이벤트는 좌클릭 이벤트를 나타내는 파라미터다..멈칫..


Tkinter 결론 : 컴포넌트 사용법과 레이아웃 배치하는 정도만 공부하면 이것저것 만드는데 큰 어려움은 없을거 같다 .

                    Python 프로그램들의  플랫폼에 따른 동작에 대해서 좀 봐야겠다






Posted by 마일로
: