2024. 2. 18. 18:33ㆍGUI/tkinter
요약 : 이 튜토리얼에서는 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 위젯의 다양한 옵션을 설명하는 데 사용할 기본 프로그램을 보여줍니다.
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()
일반 라벨 표시
다음 프로그램은 루트 창에 일반 레이블을 표시하는 방법을 보여줍니다.
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)
font 키워드 인수는 글꼴 이름과 크기를 포함하는 튜플입니다. 예를 들어:
font=("Helvetica", 14)
다음 예에서는 Helvetica 글꼴이 포함된 레이블을 보여줍니다.
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 파일을 저장하세요
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' | 텍스트가 아닌 이미지를 표시합니다. |
다음 프로그램은 라벨에 텍스트와 이미지를 모두 표시하는 방법을 보여줍니다.
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 |