일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- PANDAS
- string
- django
- Mac
- Tkinter
- list
- math
- google apps script
- array
- PostgreSQL
- Apache
- Java
- Google Excel
- matplotlib
- gas
- Redshift
- PySpark
- numpy
- Github
- c#
- Kotlin
- dataframe
- 파이썬
- Google Spreadsheet
- Python
- GIT
- hive
- Excel
- SQL
- Today
- Total
달나라 노트
Python tkinter : tkinter 설치와 실행 (Python GUI, Graphical User Interface, tkinter GUI, mainloop) 본문
Python tkinter : tkinter 설치와 실행 (Python GUI, Graphical User Interface, tkinter GUI, mainloop)
CosmosProject 2022. 5. 17. 00:58
일단 tkinter에 대해 얘기하기 전에 GUI(Graphical User Interface)에 대한 개념을 알고갑시다.
GUI와 연관된 약어는 CUI(Chracter User Interface)가 있습니다.
두 단어를 비교하며 알아봅시다.
일단 저희가 흔히 UI(User Interface)라고 하면 유저들이 프로그램을 이용하면서 보는 화면과 그 화면에 있는 프로그램을 이용하기 위한 여러 요소들(e.g. 버튼, 아이콘, ID 입력칸 등)을 의미합니다.
예를 들어 홈페이지에 접속했을 때 여러 글과 사진과 로그인버튼 등 다양한 기능을 가진 버튼과 아이콘들이 있을겁니다.
이런것들이 모두 일종의 UI입니다.
유저가 어떤 프로그램을 다루기 위해 보이는 화면을 UI라고 한다고 간단하게 생각하고 넘어갑시다.
그러면 CUI는 뭘까요?
CUI는 Character User Interface의 약자입니다.
여기서 Character란 문자를 의미합니다.
즉, UI는 UI인데 문자를 이용한 UI를 의미하는 것이 바로 CUI입니다.
엥? 이게 무슨소리지 싶겠지만 예시를 들으면 바로 이해가 갈겁니다.
Mac 사용자라면 Terminal이 일종의 CUI이고,
Window 사용자라면 명령 프롬프트가 일종의 CUI입니다.
예를들어 Mac terminal을 열면 위같은 화면이 나옵니다.
Terminal에서 유저는 다양한 명령어(pwd, cd, ls, ls - al, ...)를 이용해서 원하는 기능을 수행하죠.
자 여기서 사용한 명령어가 버튼인가요? 뭔가를 클릭했나요? 아니죠. pwd, cd 등 어떠한 문자를 입력했습니다.
즉, 사용사는 terminal에서 어떠한 문자(Character)를 입력하여 terminal의 기능을 이용한겁니다.
이것이 바로 CUI입니다.
문자(Character)를 이용해서 사용자(User)가프로그램와 소통할 수 있는 화면(Interface)인 것이죠.
근데 사실 대부분의 유저들은 위처럼 문자로 이용하는 UI 보다는 수많은 홈페이지, 어플리케이션의 화면 처럼 클릭 한번으로 로그인/로그아웃/상품의 구매/상품 상세페이지 확인 등을 할 수 있는 형태에 익숙할겁니다.
이런 화면을 만들기위해선 어떻게 해야할까요?
버튼을 만든다고 할 때 버튼의 모양, 색깔, 버튼의 위치, 버튼에 들어갈 텍스트 등 여러 가지 요소가 들어가고, 이러한 요소들은 텍스트가 아니라 그래픽적인 요소이죠.
그리고 이렇게 만들어진 그래픽 요소들(로그인 버튼, 로그아웃 버튼, 구매 버튼, 아이디 입력칸, 기타 아이콘 등)을 통해서 프로그램과 소통하는 것을 GUI(Graphical User Interface)라고 합니다.
흔히 사용하는 Microsoft의 Excel, Word, PowerPoint 모두 GUI의 종류 중 하나입니다.
이제 CUI, GUI의 개념을 알았습니다.
그러면 우리가 뭔가 게임을 만든다던지 어플리케이션을 만든다던지 등의 목적이 있다면 CUI를 이용할까요 GUI를 이용할까요?
당연히 GUI를 이용합니다.
뭔가 개발자를 타겟으로 하는 툴을 만들려면 CUI를 이용할 수도 있습니다.
하지만 거의 대부분의 경우 유저들이 쉽게 접근하고 사용할 수 있는 GUI 형태의 어플리케이션을 만들게됩니다. 그것이 게임이건, 타이머이건, 홈페이지건 어떤것이건 말이죠.
Python의 tkinter library는 Python에서 GUI를 직접 만들 수 있도록 해주는 library입니다.
1. tkinter 설치
먼저 tkinter를 설치해야겠죠.
저는 Mac 기준으로 설명을 드릴테지만 (놀랍게도 tkinter는 Mac에서도 작동합니다.)
Window도 동일합니다.
pip install tk
terminal에 위 명령어를 입력합시다.
주의할 점은 라이브러리 이름이 tkinter라고 해서 pip install tkinter라고 입력하면 설치되지 않습니다.
pip install tk라고 입력해야 합니다.
2. tkinter 실행 (GUI Window 열기)
이번에는 tkinter를 실행시키고 Window를 여는 것까지 해봅시다.
(여기서 말하는 Window란 운영체제 Window가 아니라 GUI 창 또는 GUI 화면을 의미합니다. 마치 프로그램을 실행시키면 뜨는 창을 Window라고 말한다고 생각하면 됩니다.)
import tkinter as tk
window = tk.Tk()
window.mainloop()
Python 파일을 만들고 위처럼 코드를 적어줍시다.
- import tkinter as tk
tkinter를 import 합니다.
- window = tk.Tk()
tkinter의 Tk class를 window 변수에 할당합니다.
- window.mainloop()
mainloop() method를 이용해서 window를 열어줍니다.
mainloop() method는 window를 열어주는 역할을 합니다.
위 코드를 실행시키면 아래와 같은 화면이 뜹니다.
자 Window가 떴습니다.
우리는 이제 여러 기능을 이용해서 위 화면에 다양한 요소들을 추가할 수 있습니다.
예를들어 Window의 어느 위치에 글자를 띄운다던지, 이미지를 띄운다던지 등의 기능을 구현할 수 있습니다.
이러한 기능들을 이용하면 타이머, 스케줄러 같은 단순한 프로그램에서부터 슈팅 게임, 퍼즐 게임, RPG 게임까지도 모두 제작할 수 있습니다.