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
'Python > GUI(tkinter)' 카테고리의 다른 글
독학 Python tkinter(GUI) - 06.grid (1) | 2023.11.04 |
---|---|
독학 Python tkinter(GUI) - 05.pack (1) | 2023.11.03 |
독학 Python tkinter(GUI) - 03.Frame (1) | 2023.11.01 |
독학 Python tkinter(GUI) - 02.기본설정 (1) | 2023.10.31 |
독학 Python tkinter(GUI) - 01.preview (1) | 2023.10.30 |