Tkinter 라벨

2024. 2. 18. 18:33GUI/tkinter

python.png
0.00MB

요약 : 이 튜토리얼에서는 Tkinter Label 위젯과 이를 사용하여 화면에 텍스트나 이미지를 표시하는 방법에 대해 배웁니다.

Tkinter Label 위젯 소개

Tkinter Label위젯은 화면에 텍스트나 이미지를 표시하는 데 사용됩니다. Label 위젯을 사용하려면 다음과 같은 일반 구문을 사용합니다.

label = ttk.Label(master, **options)

Label 위젯에는 모양을 사용자 정의할 수 있는 다양한 옵션이 있습니다.

옵션의미
anchor 텍스트 및/또는 이미지가 너비보다 작은 경우 앵커 옵션에 따라 위치를 결정하거나 tk.W각각 tk.CENTER왼쪽 tk.E, 가운데, 오른쪽 정렬을 결정합니다.
background 라벨의 배경색을 설정합니다.
borderwidth 이 옵션을 사용하여 레이블에 대한 효과(예: 평면, 융기, 함몰, 홈 및 능선)를 만듭니다.
class_ 레이블 모양을 변경하려면 사용자 정의 위젯 클래스 이름을 지정하세요.
compound 라벨에 텍스트와 이미지를 모두 표시하는 방법을 지정합니다.
cursor 마우스가 위젯 위에 있을 때 마우스 커서의 모양을 지정합니다.
font 텍스트 표시를 위한 글꼴 스타일 지정
foreground 텍스트의 색상을 지정
image 텍스트 외에 또는 텍스트 대신 표시할 이미지를 지정하세요.
justify 텍스트에 개행 문자가 포함된 경우 justify옵션은 각 줄이 수평으로 배치되는 방식을 지정합니다. 유효한 값은 tk.LEFT(왼쪽 맞춤), tk.CENTER(가운데) 및 tk.RIGHT(오른쪽 맞춤)입니다.
padding 라벨 주위에 공간을 더 추가하세요.
relief wraplength 옵션에 지정된 길이보다 짧은 줄로 텍스트를 자릅니다.
style 사용자 정의 위젯 스타일을 지정합니다.
takefocus 포커스 순회 중에 레이블을 방문할지 여부를 지정하는 부울 값입니다. 포커스를 얻지 못하는 기본값은 False입니다.
text 위젯에 표시할 텍스트 문자열 지정
textvariable 위젯의 텍스트 값을 보유하는 StringVar 인스턴스입니다. textvariable과 text를 모두 사용할 수 있는 경우 text 옵션을 재정의합니다.
underline 밑줄을 그어야 하는 문자의 위치를 ​​지정합니다. 예를 들어 underline = 0은 text='Exit'에서 문자 E에 밑줄을 긋습니다.
width 표시할 문자 수 지정
wraplength wraplength 옵션에 지정된 길이보다 짧은 줄로 텍스트를 자릅니다.

다음은 Label 위젯의 다양한 옵션을 설명하는 데 사용할 기본 프로그램을 보여줍니다.

In [ ]:
import tkinter as tk
from tkinter import ttk

root = tk.Tk()
root.geometry('300x200')
root.resizable(False, False)
root.title('Label Widget Demo')

# show the label here

root.mainloop()

일반 라벨 표시

다음 프로그램은 루트 창에 일반 레이블을 표시하는 방법을 보여줍니다.

In [ ]:
import tkinter as tk
from tkinter.ttk import Label

root = tk.Tk()
root.geometry('300x200')
root.resizable(False, False)
root.title('Label Widget Demo')

# show a label
label = Label(root, text='This is a label')
label.pack(ipadx=10, ipady=10)

root.mainloop()

작동 방식.

  • 먼저 tkinter.ttk 모듈에서 Label 클래스를 가져옵니다.
  • 둘째, 루트 창을 만들고 크기, 크기 조정 가능, 제목 등의 속성을 설정합니다.
  • 셋째, Label 위젯의 새 인스턴스를 만들고 해당 컨테이너를 루트 창으로 설정한 다음 해당 text속성에 리터럴 문자열을 할당합니다.

라벨의 특정 글꼴 설정

레이블에 특정 글꼴을 설정하려면 다음과 같이 font 키워드 인수를 Label 생성자에 전달합니다.

font = ('font name', font_size)

In [ ]:
font 키워드 인수는 글꼴 이름과 크기를 포함하는 튜플입니다. 예를 들어:

font=("Helvetica", 14)

In [ ]:
다음 예에서는 Helvetica 글꼴이 포함된 레이블을 보여줍니다.
In [ ]:
import tkinter as tk
from tkinter import ttk


root = tk.Tk()
root.geometry('300x200')
root.resizable(False, False)
root.title('Label Widget Demo')

# label with a specific font
label = ttk.Label(
    root,
    text='A Label with the Helvetica font',
    font=("Helvetica", 14))

label.pack(ipadx=10, ipady=10)

root.mainloop()

이미지 표시

Label 위젯을 사용하여 이미지를 표시하려면 다음 단계를 따르세요.

먼저 사진 경로를 PhotoImage 생성자에 전달하여 PhotoImage 위젯을 만듭니다.

photo = tk.PhotoImage(file='./assets/python.png')

둘째, Label 위젯 의 image 옵션에 PhotoImage 개체를 할당합니다.

Label(..., image=photo)

다음 예에서는 Label위젯을 사용하여 이미지를 표시하는 방법을 보여줍니다.

아래 파이썬 코드를 실행하기 전에 assets 디렉토리를 만들고 그 밑에 첨부한 python.png 파일을 저장하세요

In [ ]:
import tkinter as tk
from tkinter import ttk

# create the root window
root = tk.Tk()
root.geometry('300x200')
root.resizable(False, False)
root.title('Label Widget Image')

# display an image label
photo = tk.PhotoImage(file='./assets/python.png')
image_label = ttk.Label(
    root,
    image=photo,
    padding=5
)
image_label.pack()

root.mainloop()

텍스트와 이미지를 모두 표시하려면 text 속성과 compound 옵션을 사용합니다.

compound 옵션은 텍스트를 기준으로 이미지의 위치를 지정합니다. 유효한 값은 다음과 같습니다.

Compound효과
'top' 텍스트 위에 이미지를 표시합니다.
'bottom' 텍스트 아래에 이미지를 표시합니다.
'left' 텍스트 왼쪽에 이미지를 표시합니다.
'right' 텍스트 오른쪽에 이미지를 표시합니다.
'none' 이미지가 있으면 이미지를 표시하고, 없으면 텍스트를 표시합니다. 복합 옵션의 기본값은 'none'입니다.
'text' 이미지가 아닌 텍스트를 표시합니다.
'image' 텍스트가 아닌 이미지를 표시합니다.

다음 프로그램은 라벨에 텍스트와 이미지를 모두 표시하는 방법을 보여줍니다.

In [4]:
import tkinter as tk
from tkinter import ttk

# create the root window
root = tk.Tk()
root.geometry('300x200')
root.resizable(False, False)
root.title('Label Widget Image')

# display an image label
photo = tk.PhotoImage(file='./assets/python.png')
image_label = ttk.Label(
    root,
    image=photo,
    text='Python',
    compound='top'
)
image_label.pack()

root.mainloop()

요약

텍스트나 이미지를 표시하려면 Tkinter Label 위젯을 사용하세요.

'GUI > tkinter' 카테고리의 다른 글

Tkinter Entry  (1) 2024.02.20
Tkinter 위젯  (0) 2024.02.20
Tkinter 명령 바인딩  (0) 2024.02.17
Tk 테마 위젯에 대한 옵션을 설정하는 3가지 방법  (0) 2024.02.16
Ttk 위젯  (0) 2024.02.15