티스토리 뷰

9.1 Tkinter를 이용한 GUI 프로그래밍

- TkinterGUI 프로그램을 개발할 수 있게 해주고 객체 지향 프로그래밍을 공부 할 때 좋은 교육 툴이 될 수 있다.

- 이전에 터틀(turtle) 모듈을 이용해 기하학적인 그림을 그려보았다.

- 하지만 터틀(turtle)로는 그래픽 기반 유저 인터페이스(graphical user interfaces)를 만들지는 못한다.

- 이번 챕터에서는 GUI 프로젝트 개발에 쓰이는 Tkinter에 대해 배울 예정이다.

- Tkinter를 줄여서 Tk interface라고도 부른다.

 

9.2 Tkinter 시작하기(Getting Started with Tkinter)

- tkinter 모듈GUI를 만들기위한 클래스들을 가지고 있다.

- Tk 클래스GUI 위젯을 가질 수 있는 윈도우 창을 생성한다.

 

*Tkinter 예제

1
2
3
4
5
6
7
8
9
from tkinter import *
 
window = Tk() # 윈도우 생성
label = Label(window, text = "Welcome to Python"# 라벨 만들기
button = Button(window, text = "Click Me"# 버튼 만들기
label.pack() # 윈도우에 라벨 위치시키기
button.pack()# 윈도우에 버튼 위치시키기
 
window.mainloop() # 이벤트 루프를 생선한다.
cs

 

 

- Tkinter로 GUI 프로그램을 만들 때 마다, 반드시 Tkinter 모듈임포트(import) 해야하며, Tk클래스를 이용윈도우창을 만들어야 한다.

Tk()윈도우의 인스턴스를 생성한다.

- LabelButton은 버튼과 라벨을 만드는 파이썬 tkinter 위젯 클래스(Python Tkinter widget classes)이다.

- 위젯 클래스(widget class)첫번째 인자(argument)는 항상 부모 컨테이너(parent container)이다. i.e) 컨테이너란, 위젯이 배치되는 곳이다.

 

* 라벨 명령어(line 4)

label = Label(window, text = "Welcome to Python")

- 위 명령어는 "Welcome to Python"이라는 텍스트의 라벨을 윈도우 창에 집어 넣는 명령어이다.

 

* 라벨 명령어(line 6)

labae.pack()

- 위 명령어는 라벨을 팩 매니저(pack manager)를 사용하는 컨테이너(container)에 위치시키는 명령어이다.

- 팩 매니저(pack manager)에 대해선 차후에 소개된다. 지금은 그저 사용만 하도록 하자.

 

- Tkinter GUI 프로그래밍이벤트 기반으로 구동된다.

- 유저 인터페이스(User Interface)가 출력되고 난 뒤, 프로그램은 마우스 클릭이나 키보드 입력과 같은 상호작용을 기다린다.

- 이러한 특징이 아래의 명령어로 이루어진다.

window.mainloop()

 

- 위 명령어는 이벤트 루프(event loop)를 생성한다.

- 이벤트 루프는 이용자가 메인 창을 닫을 때 까지 계속해서 이벤트를 진행한다.

 

*Tkinter GUI 프로그램 루프 과정

 

 

 

참고 문헌 : Introduction to Programming Using Python / Y.DANIEL LIANG



본 게시물은 개인적인 용도로 작성된 게시물입니다. 이후 포트폴리오로 사용될 정리 자료이니 불펌과 무단도용은 하지 말아주시고 개인 공부 목적으로만 이용해주시기 바랍니다.


교재 영어 원서를 직접 번역하여 정리한 게시물이므로 일부 오타, 의역이 존재할 수 있습니다. 틀린 부분이 있다면 댓글로 알려주시면 감사하겠습니다. 

댓글