Tkinter는 파이썬에서 가장 널리 쓰이는 표준 GUI 라이브러리로, 버튼 위젯에 이미지를 손쉽게 추가할 수 있는 기능을 제공합니다. 텍스트만 있는 버튼보다 아이콘이나 그림이 포함된 버튼이 훨씬 직관적이기 때문에, 사용자가 각 기능을 빠르게 인식하고 기억하는 데 큰 도움이 됩니다.
이 글에서는 Pillow(PIL) 라이브러리의 ImageTk 모듈에 있는 PhotoImage 클래스를 사용해 이미지를 불러오는 방법을 소개합니다. 이미지 파일은 로컬 경로로 지정하면 됩니다.
예제 코드
from tkinter import *
from PIL import ImageTk, Image
base = Tk()
base.title('Start Button')
img = ImageTk.PhotoImage(Image.open('D:/button.jpg'))
lab = Label(image=img)
lab.pack()
button = Button(base, text='exit', command=base.quit)
button.pack()
base.mainloop()실행 결과
위 코드를 실행하면 지정한 경로의 이미지가 창 상단에 표시되고, 그 아래에 'exit' 버튼이 함께 나타납니다.

응용: 버튼 자체에 이미지 넣기
위 예제에서는 Label 위젯으로 이미지를 화면에 출력했지만, 같은 PhotoImage 객체를 Button 위젯의 image 옵션에 전달하면 버튼 자체에 이미지를 표시할 수도 있습니다.
button = Button(base, image=img, command=base.quit) button.pack()
이미지와 텍스트를 동시에 표시하고 싶다면 compound 옵션을 활용하세요. 예를 들어 compound='top'으로 지정하면 이미지가 텍스트 위쪽에 배치됩니다.