티스토리 뷰
9.1 Tkinter를 이용한 GUI 프로그래밍
- Tkinter은 GUI 프로그램을 개발할 수 있게 해주고 객체 지향 프로그래밍을 공부 할 때 좋은 교육 툴이 될 수 있다.
- 이전에 터틀(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()는 윈도우의 인스턴스를 생성한다.
- Label과 Button은 버튼과 라벨을 만드는 파이썬 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
※
본 게시물은 개인적인 용도로 작성된 게시물입니다. 이후 포트폴리오로 사용될 정리 자료이니 불펌과 무단도용은 하지 말아주시고 개인 공부 목적으로만 이용해주시기 바랍니다.
교재 영어 원서를 직접 번역하여 정리한 게시물이므로 일부 오타, 의역이 존재할 수 있습니다. 틀린 부분이 있다면 댓글로 알려주시면 감사하겠습니다.
※
'파이썬 > 파이썬 GUI' 카테고리의 다른 글
[파이썬]대출 계산기 (0) | 2017.11.06 |
---|---|
[파이썬]기하 관리자(The Geometry Managers) (0) | 2017.11.01 |
[파이썬]캔버스 (0) | 2017.10.30 |
[파이썬]위젯 클래스 (4) | 2017.09.26 |
[파이썬 GUI]이벤트 처리하기(Processing Events) (1) | 2017.09.14 |
- Total
- Today
- Yesterday
- 파이썬 연산자
- 백준 10451
- 파이썬 예제
- 파이썬 if문
- css 박스
- 버츄어박스
- 파이썬 선택문
- 명품 c++ 실습
- 파이썬 객체
- 파이썬 함수
- 자료구조
- 파이썬 문자열
- 파이썬 단계적 개선
- 파이썬 리스트
- 파이썬 터틀
- css
- 파이썬 클래스
- 파이썬 진수 변환
- 자바 에센셜 실습문제
- 백준
- 파이썬
- 자바스크립트 그래프
- css 그리드
- 웹
- 자바
- 자바스크립트 자료구조
- 백준 11501
- 백준 1874
- 파이썬 while
- 파이썬 for
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |