Tkinter 라이브러리
Tkinter는 Tcl와 Tk 툴킷을 사용하여 GUI를 구성할 수 있도록 도움을 주는 모듈입니다.
Tkinter의 다양한 기능을 간단한 정도로만 정리하였습니다.
기본 설정
Tkinter는 Python에 내장되어 있는 라이브러리이기 때문에 따로 설치가 필요하지 않습니다.
import tkinter
위처럼 import를 사용하거나
from tkinter import *
위처럼 from을 사용하여 모듈을 불러옵니다.
창 생성 메서드
Tk()는 기본 창 단위의 객체를 생성하는 메서드입니다.
window = Tk()
from tkinter import *
window = Tk()
실행하면 다음과 같은 창을 띄웁니다.
tk.geometry()
geometry()는 창의 크기를 설정하는 메서드입니다.
tk.geometry("(width)x(height)")
from tkinter import *
window = Tk()
window.geometry("300x200")
실행하면 다음과 같이 크기가 변경된 창을 띄웁니다.
tk.title()
title()은 창의 제목을 설정하는 메서드입니다.
tk.title(string)
from tkinter import *
window = Tk()
window.title("Test Window")
실행하면 다음과 같이 제목이 변경된 창을 띄웁니다.
Widget 배치 메서드
위젯 요소를 다양한 방식으로 배치할 수 있습니다.
(위젯을 배치하지 않으면 창에 나타나지 않습니다.)
widget.pack()
pack()은 위젯을 수직으로 배치하는 메서드입니다.
widget.pack()
from tkinter import *
window = Tk()
Label(window, text="Test Label 1").pack()
Label(window, text="Test Label 2").pack()
Label(window, text="Test Label 3").pack()
실행하면 다음과 같이 여러 개의 위젯을 수직으로 배치한 것을 볼 수 있습니다.
widget.grid()
pack()은 위젯을 행과 열(테이블) 방식으로 배치하는 메서드입니다.
widget.grid(row=0, column=0, rowspan=1, columnspan=1)
from tkinter import *
window = Tk()
Label(window, text="Test Label 1").grid(row=0, column=0, columnspan=2)
Label(window, text="Test Label 2").grid(row=1, column=0)
Label(window, text="Test Label 3").grid(row=1, column=1)
실행하면 다음과 같이 여러 개의 위젯을 테이블 방식으로 배치한 것을 볼 수 있습니다.
Widget 생성 메서드
다양한 위젯 요소를 활용하여 GUI를 구성할 수 있습니다.
Label()
Label()은 텍스트, 이미지 등을 나타내는 라벨 객체를 생성하는 메서드입니다.
Label(tk, text, width=0, height=0) # 텍스트 라벨
Label(tk, image, width=0, height=0) # 이미지 라벨
label = Label()
label["text"] = "Test"
Label 객체의 모든 파라미터 요소는 위와 같이 딕셔너리 형태로 접근할 수 있습니다.
from tkinter import *
window = Tk()
python_img = PhotoImage(file="python.png")
image_label = Label(window, image=python_img, width=250, height=250)
image_label.pack()
text_label = Label(window, text="Python")
text_label.pack()
실행하면 다음과 같이 이미지, 텍스트 라벨이 생성된 것을 확인할 수 있습니다.
Button()
Button()은 버튼 객체를 생성하는 메서드입니다.
Button(tk, text, command, width=0, heigth=0)
button = Button()
button["text"] = "Test"
Button 객체의 모든 파라미터 요소는 위와 같이 딕셔너리 형태로 접근할 수 있습니다.
from tkinter import *
window = Tk()
def Click():
btn["text"] = "Clicked"
btn = Button(window, text="Test Button", command=Click)
btn.pack()
실행하면 다음과 같이 버튼이 생성되고 클릭 이벤트가 발생하는 것을 확인할 수 있습니다.
Entry()
Entry()는 입력란 객체를 생성하는 메서드입니다.
Entry(tk, width=0, height=0)
Entry 객체의 모든 파라미터 요소 또한 딕셔너리 형태로 접근할 수 있습니다.
from tkinter import *
window = Tk()
entry = Entry(window)
entry.pack()
실행하면 다음과 같이 입력란이 생성된 것을 확인할 수 있습니다.