Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Tkinter 메뉴 UI에서 점선을 제거하는 방법

Tkinter의 Menu 위젯은 애플리케이션 상단에 위치한 메뉴 바(Menu Bar)를 만들 때 사용됩니다. 그런데 메뉴를 구성해 보면 첫 번째 메뉴 항목 위에 불필요한 점선(dashed line)이 표시되는 경우가 있습니다.

이 점선은 tearoff 속성 때문에 나타나는 것입니다. tearoff가 활성화되어 있으면 사용자가 해당 점선을 클릭해 메뉴를 원래 창에서 분리된 별도의 팝업 창으로 띄울 수 있으며, 이때 메뉴 항목의 인덱스는 1부터 시작합니다. 반면 tearoff=0(False)으로 설정하면 점선이 사라지고, 메뉴 항목의 인덱스도 0부터 시작하게 됩니다.

예제 코드

# tkinter 라이브러리 임포트
from tkinter import *

# tkinter 프레임 인스턴스 생성
win = Tk()

# 윈도우 크기 설정
win.geometry("700x350")

# 메뉴 바 인스턴스 생성
menubar = Menu(win)
file = Menu(menubar, tearoff=0)

# 메뉴 항목 추가
file.add_command(label="New")
file.add_command(label="Open")
file.add_command(label="Save")
file.add_separator()
file.add_command(label="Quit")
menubar.add_cascade(label="File", menu=file)
win.config(menu=menubar)
win.mainloop()

실행 결과

위 코드를 실행하면 상단 내비게이션 바에 메뉴가 포함된 윈도우가 표시됩니다. 메뉴를 클릭하면 tearoff=0 설정 덕분에 점선 없이 깔끔하게 메뉴 항목 목록만 나타납니다.

Tkinter 메뉴 UI에서 점선을 제거하는 방법