Tkinter에서 Frame 위젯 주위에 테두리(border)를 그리려면 프레임을 생성할 때 highlightbackground와 highlightthickness 매개변수를 사용하면 됩니다. 이번 글에서는 이 두 가지 매개변수를 실제 예제를 통해 어떻게 활용하는지 자세히 알아보겠습니다.
구현 단계
tkinter 라이브러리를 임포트하고 tkinter 프레임의 인스턴스를 생성합니다.
geometry 메서드를 사용하여 윈도우의 크기를 설정합니다.
Frame() 메서드로 프레임을 생성합니다. 이때 highlightbackground="blue"로 테두리 색상을 지정하고, highlightthickness=2로 테두리 두께를 설정합니다.
프레임 내부에 위젯들을 배치합니다. 예제에서는 체크버튼(checkbutton) 4개와 버튼(button) 1개를 프레임 안에 넣었습니다.
마지막으로 애플리케이션 윈도우의 mainloop를 실행하여 화면에 출력합니다.
예제 코드
from tkinter import *
top = Tk()
top.geometry("700x350")
frame1 = Frame(top, highlightbackground="blue", highlightthickness=2)
frame1.pack(padx=20, pady=20)
C1 = Checkbutton(frame1, text = "Music", width=200, anchor="w")
C1.pack(padx=10, pady=10)
C2 = Checkbutton(frame1, text = "Video", width=200, anchor="w")
C2.pack(padx=10, pady=10)
C3 = Checkbutton(frame1, text = "Songs", width=200, anchor="w")
C3.pack(padx=10, pady=10)
C4 = Checkbutton(frame1, text = "Games", width=200, anchor="w")
C4.pack(padx=10, pady=10)
Button(frame1, text="Button-1", font=("Calibri",12,"bold")).pack(padx=10, pady=10)
top.mainloop()실행 결과
위 코드를 실행하면 다음과 같은 결과가 나타납니다.

더 간단한 방법: LabelFrame 활용
프레임 주위에 단순한 테두리만 필요하다면 더 쉬운 방법도 있습니다. Frame 대신 LabelFrame을 사용하면 별도의 매개변수 설정 없이도 자동으로 프레임 위젯 주위에 테두리가 생성됩니다. 또한 LabelFrame은 제목(라벨)을 함께 표시할 수 있어 위젯을 그룹화할 때 시각적으로 더욱 유용합니다.