본문 바로가기
Python/GUI(tkinter)

독학 Python tkinter(GUI) - 04.Label

by To올라운더 2023. 11. 2.
반응형

1. Label?

 - 우리에게는 라벨이라는 발음이 더 익숙하지만, 실제 외국 강의영상을 보면 대부분 레이블이라고 발음한다.

 - 레이블(Label)은 GUI 상에 일반적으로 나타나는 글들을 표현하는 요소(위젯)이다.

 - 대부분 제목의 용도로 쓰거나 함께 보이는 그림이나 표를 설명하는 형태의 문장을 입력할 때 사용한다.

from tkinter import *

root = Tk()
root.title('To올라운드의 알찬 GUI 강의')


root.geometry("300x800") # 가로 X 세로 / 대문자X 하면 실행안됨

head_frame = Frame(root, relief='solid', bd=2, background='red')
head_frame.pack(fill='both', expand=True)

id_lable = Label(root, text='Root 에 입력된 Lable 입니다.')
id_lable.pack()

body_frame = Frame(root, relief='solid', bd=2, background='orange', padx=5, pady=5)
body_frame.pack(fill='both', expand=True)


body_left_frame = Frame(body_frame, relief='raised', bd=2, background='green')
body_left_frame.pack(fill='both', expand=True)

title_lable = Label(body_left_frame, text='제목을 입력하세요.')
title_lable.pack()


body_right_frame = Frame(body_frame, relief='ridge', bd=2, background='blue')
body_right_frame.pack(fill='both', expand=True)

result_lable = Label(body_right_frame, text='결과를 알려주세요.')
result_lable.pack()

tail_frame = Frame(root, relief='solid', bd=2, background='purple')
tail_frame.pack(fill='both', expand=True)

root.resizable(False,False) # x너비, y 변경 허용 여부
root.mainloop()

 

2. 코드 간단 리뷰

  - 해당 코드를 몇 가지 살펴보면,

    Label 객체를 생성하는 방법은, [객체명 = Label(입력될 Frame, text='입력할 텍스트')]로 선언하고,

    이전 포스팅에서 봤던 Frame과 동일하게 pack()을 이용해 UI상에 나타낼 수 있다.

 

  - Label에도 여러가지 파라미터 옵션들이 있는데,

이름 의미 기본값 속성
text 라벨에 표시할 문자열 - -
textvariable 라벨에 표시할 문자열을 가져올 변수 - -
anchor 라벨안의 문자열 또는 이미지의 위치 center n, ne, e, se, s, sw, w, nw, center
justify 라벨의 문자열이 여러 경우 정렬 방법 center center, left, right
wraplength 자동 줄내림 설정 너비 0 상수

  - anchor(정렬)의 약자는 n : north, e : east, s : south, w : west 의 약자이다.

  - 비교 내용을 확인하기 위해 몇가지 파라미터를 할당해보면,

     25~38 라인에서 보듯이, width, height 값을 할당하고, 경계선을 나타낸 다음

     anchor 값이 달라짐에 따라 표기되는 위치가 달라진다.

반응형
from tkinter import *

root = Tk()
root.title('To올라운드의 알찬 GUI 강의')


root.geometry("300x800") # 가로 X 세로 / 대문자X 하면 실행안됨

head_frame = Frame(root, relief='solid', bd=2, background='red')
head_frame.pack(fill='both', expand=True)

id_lable = Label(root, text='Root 에 입력된 Lable 입니다.')
id_lable.pack()

body_frame = Frame(root, relief='solid', bd=2, background='orange', padx=5, pady=5)
body_frame.pack(fill='both', expand=True)


body_left_frame = Frame(body_frame, relief='raised', bd=2, background='green')
body_left_frame.pack(fill='both', expand=True)

title_lable = Label(body_left_frame, text='제목을 입력하세요.')
title_lable.pack()

anchor_lable_north = Label(body_left_frame, text='north', anchor='n', width=250, height=3, relief='solid', bd=2)
anchor_lable_north.pack()

anchor_lable_east = Label(body_left_frame, text='east', anchor='e', width=250, height=3, relief='solid', bd=2)
anchor_lable_east.pack()

anchor_lable_south = Label(body_left_frame, text='south', anchor='s', width=250, height=3, relief='solid', bd=2)
anchor_lable_south.pack()

anchor_lable_west = Label(body_left_frame, text='west', anchor='w', width=250, height=3, relief='solid', bd=2)
anchor_lable_west.pack()

anchor_lable_center = Label(body_left_frame, text='center', anchor='center', width=250, height=3, relief='solid', bd=2)
anchor_lable_center.pack()





body_right_frame = Frame(body_frame, relief='ridge', bd=2, background='blue')
body_right_frame.pack(fill='both', expand=True)

result_lable = Label(body_right_frame, text='결과를 알려주세요.')
result_lable.pack()

tail_frame = Frame(root, relief='solid', bd=2, background='purple')
tail_frame.pack(fill='both', expand=True)

root.resizable(False,False) # x너비, y 변경 허용 여부
root.mainloop()

 

위에서 언급된 파라미터 외에도 위에서 본 것처럼 크기와 경계선 등을 나타내는 파라미터도 있다.

이름 의미 기본값 속성
width 라벨의 너비 0 상수
height 라벨의 높이 0 상수
relief 라벨의 테두리 모양 flat flat, groove, raised, ridge, solid, sunken
borderwidth=bd 라벨의 테두리 두께 2 상수
background=bg           라벨의 배경 색상         SystemButtonFace                   color                  
foreground=fg         라벨의 문자열 색상         SystemButtonFace                   color                  
padx 라벨의 테두리와 내용의 가로 여백 1 상수
pady 라벨의 테두리와 내용의 세로 여백 1 상수

 

 

3. Label 수정하기

 - 실제 Label은 고정 값에 많이 사용하지만 수정할 수도 있다.

 - Label명.config(text='변경하고자 하는 내용')의 형식으로 내용을 변경하는 경우가 많은데,

   Button을 설명하며 내용을 좀 더 자세히 설명하겠다.

2023.11.06 - [Python/GUI(tkinter)] - 독학 Python tkinter(GUI) - 08.Button

 

반응형