Python/Library

[Python] Tkinter 간단 사용법

HYEOKJUN 2022. 7. 23. 18:00
반응형


Tkinter 라이브러리

TkinterTcl와 Tk 툴킷을 사용하여 GUI를 구성할 수 있도록 도움을 주는 모듈입니다.

Tkinter의 다양한 기능을 간단한 정도로만 정리하였습니다.


기본 설정

TkinterPython에 내장되어 있는 라이브러리이기 때문에 따로 설치가 필요하지 않습니다.

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()

실행하면 다음과 같이 입력란이 생성된 것을 확인할 수 있습니다.


반응형