레이블

레이블은 기본적으로 텍스트를 표시하는 위젯이지만 이미지도 함께 표시할 수 있습니다.

w = Label(parent, option, ...)

 

레이블로 화면에 이미지 표시하기

레이블은 이미지도 표시할 수 있습니다. PhotoImage 클래스의 생성자를 호출할 때, 이미지 파일 이름을 주면 됩니다.

PhotoImage 클래스는 파일에서 GIF 및 PGM / PPM 이미지만을 읽을 수 있습니다.

이미지는 .py 파일과 동일한 경로에 있으면 파일 이름만 적어도 되며 다른 경로의 이미지를 가져오고 싶다면 이미지 경로 전부를 file 매개변수에 적어주면 됩니다.

from tkinter import *

window = Tk()
photo = PhotoImage(file="seulgi_dumbdumb.gif")

w = Label(window, image = photo)

w.photo = photo
w.pack()

window.mainloop()

 

<실행 결과>

Dumb Dumb Dumb Dumb Dumb Dumb   Dumb Dumb Dumb Dumb Dumb Dumb 

Dumb Dumb Dumb Dumb Dumb Dumb   Dumb Dumb Dumb Dumb Dumb Dumb 

 

PhotoImage 클래스의 생성자에 이미지 파일의 이름을 주면 아미지 파일을 객체로 만들 수 있습니다.

레이블을 생성할 때, 이미지 객체를 image 매개 변수를 통하여 전달합니다.

 

레이블에 이미지와 텍스트를 동시에 나타내기

레이블은 텍스트와 이미지를 동시에 표시할 수 있습니다. "justify" 매개 변수는 LEFT, RIGHT 또는 정렬 값을 가질 수 있습니다.

padx는 텍스트 라벨 주위에 수평 패딩을 추가하는데 사용될 수 있습니다. 기본 패딩은 1 픽셀입니다. pady 수직 패딩도 유사합니다.

from tkinter import *

window = Tk()
photo = PhotoImage(file="seulgi_dumbdumb.gif")

# 이미지는 윈도우의 오른쪽에 배치합니다.
w = Label(window, image = photo).pack(side="right")
message = '''You need to “beat it”
That boy Michael Jackson ”bad”
난 너의 “Billie Jean”이 아냐
Don’t you “leave me alone”
하지만 애매한 반응 난 원해 “black or white”
포기 못해 나의 “man in the mirror”
“Why you wanna trip on me”
넌 너무 짓궂지
Boy, you make me “scream”
너에게 왜 이러지
하긴 너의 “Love 정말 never felt so good”
그건 아마 짜릿하다 못해 watching the “thriller”
'''

# 텍스트는 왼쪽 정렬, 패딩은 10 픽셀이며 레이블은 윈도우의 왼쪽에 붙입니다.
w2 = Label(window, justify = LEFT, pady = 10, text = message).pack(side = "left")
window.mainloop()

 

<실행 결과>

 

레이블의 색상과 폰트 변경하기

레이블의 font 속성을 설정하면 폰트를 변경할 수 있습니다. 또 색상은 fg(foreground), bg(background) 속성을 사용하여 변경합니다.

from tkinter import *

window = Tk()

Label(window, text = "Times Font 폰트와 빨강색을 사용합니다.", fg = "red", font = "Times 32 bold italic").pack()
Label(window, text = "Helvetica 폰트와 녹색을 사용합니다.", fg = "blue", bg = "yellow", font = "Helvetica 32 bold italic").pack()

window.mainloop()

 

<실행 결과>