본문 바로가기
Programming/Python

15. GUI툴킷 Tkinter

by goatlab 2021. 12. 15.
728x90
반응형
SMALL

Tkinter

 

tkinter module은 Tcl / Tk 툴킷을 python에서 사용하기 위한 인터페이스 module이다. Tcl은 python과 같은 script 언어이고 Tk는 Tcl을 위한 GUI 툴 킷이다.

 

from tkinter import *

root = Tk()
label = Label(root, text='Hello World')
label.pack()

root.mainloop()
- Label(root, text='Hello World') : Label 클래스의 첫번째 인수로 root를 사용했는데, 이것의 의미는 root창에 포함되는 콤포넌트로 생성하겠다는 의미이다. 

- label.pack() : label 객체를 창에 표시하는 역할을 한다. 

- root.mainloop() : root창을 event loop에 들어가게 한다. mainloop에 의해 root창은 종료되지 않고 버튼 클릭 등의 이벤트를 수신하거나 사용자의 입력을 처리하는 등의 일을 계속해서 수행할 수 있다.

 

tkinter 컴포넌트

 

- 리스트박스 (ListBox) - 블로그의 목록을 보여준다. 

- 라벨 (Label) - "제목"이라는 라벨을 표시한다.

- 엔트리 (Entry) - 제목을 보여주고 입력할 수 있다.

- 텍스트 (Text) - 내용을 보여주고 입력할 수 있다.

- 버튼 (Button) - 블로그를 "생성", "수정", "삭제"하는 버튼이다.

 

리스트박스 (ListBox)

 

listbox는 목록처럼 일정한 순서를 가진 여러개의 데이터를 표시할 수 있는 컴포넌트이다.

 

from tkinter import *

root = Tk()
listbox = Listbox(root)
listbox.pack()

for i in ['1', '2', '3', '4']:
    listbox.insert(END, i)

root.mainloop()

 

엔트리 (Entry)

 

entry는 텍스트 입력을 받거나 보여주기 위해 사용하는 컴포넌트이다. 주로 여러줄이 아닌 한줄로 구성되는 문자열을 처리할 때 사용되며 여러줄의 문자열을 처리하기 위해서는 곧 설명할 text 컴포넌트를 사용한다.

 

from tkinter import *

root = Tk()
entry = Entry(root)
entry.pack()

entry.insert(0, "Hello world")

root.mainloop()

# entry.delete(0, END) # entry에 입력된 모든 내용을 삭제

 

엔트리 (Entry)

 

text 컴포넌트는 entry와 거의 동일하다. 차이점은 여러줄의 문자열을 처리할수 있다는 점이다.

 

from tkinter import *

root = Tk()
text = Text(root)
text.pack()

data = '''GOAT LAB
Tkinter python'''

text.insert(1.0, data)

root.mainloop()

 

버튼 (Button)

 

button은 클릭했을 때 특정 함수를 실행하기 위해 사용하는 컴포넌트이다.

 

from tkinter import *

root = Tk()
b1 = Button(root, text='test')
b1.pack()

def btn_click(event):
    print("button clicked")

b1.bind('<Button-1>', btn_click)

root.mainloop()

 

https://wikidocs.net/132610

 

17-05 tkinter - 편리한 GUI 툴킷

tkinter 모듈은 Tcl/Tk 툴킷을 파이썬에서 사용하기 위한 인터페이스 모듈이다. Tcl은 파이썬과 같은 스크립트 언어이고 Tk는 Tcl을 위한 GUI 툴 킷이다. ...

wikidocs.net

 

728x90
반응형
LIST

'Programming > Python' 카테고리의 다른 글

[Python] glob (파일 이름 일람 취득)  (0) 2021.12.23
16. Tkinter 고급 위젯  (0) 2021.12.15
14. 데이터베이스 (Database)  (0) 2021.12.15
13. 네트워크  (0) 2021.12.15
12. XML (Extensible Markup Language)  (0) 2021.12.15