
이 강의는 Tkinter GUI 강의 34강입니다
33강에서는
엔터 키로 버튼을 동작시키며
키보드 이벤트와 command를 연결하는 방법을 배웠습니다.
이번 강의에서는
마우스 이벤트 중에서도
자주 쓰이지만 헷갈리기 쉬운
더블 클릭(Double Click) 이벤트를 다룹니다.
이번 강의의 목표는 분명합니다.
더블 클릭 이벤트가
언제 발생하고, 단일 클릭과 어떻게 다른지
명확히 이해하는 것입니다.
더블 클릭 이벤트란 무엇인가
더블 클릭 이벤트는
마우스를
짧은 시간 안에 두 번 클릭했을 때 발생합니다.
파일 탐색기에서
파일을 더블 클릭해 열듯이
GUI에서
“확정 동작”을 표현할 때 자주 사용됩니다.
더블 클릭 이벤트 이름
Tkinter에서
왼쪽 마우스 더블 클릭 이벤트는
다음과 같이 표현합니다.
<Double-Button-1>
정리하면 다음과 같습니다.
- <Button-1> : 왼쪽 클릭
- <Double-Button-1> : 왼쪽 더블 클릭
가장 기본적인 더블 클릭 예제
import tkinter as tk
window = tk.Tk()
window.geometry("300x200")
def on_double_click(event):
print("더블 클릭 발생")
label = tk.Label(window, text="더블 클릭하세요")
label.pack(pady=40)
label.bind("<Double-Button-1>", on_double_click)
window.mainloop()
라벨을
빠르게 두 번 클릭하면
함수가 실행됩니다.
더블 클릭도 event 객체를 사용한다
더블 클릭 역시
bind 방식이기 때문에
event 객체를 사용할 수 있습니다.
def on_double_click(event):
print(event.x, event.y)
클릭 위치를
좌표로 받아
정밀한 처리가 가능합니다.
단일 클릭과 더블 클릭을 함께 사용할 때 주의점
중요한 포인트 하나입니다.
단일 클릭과 더블 클릭을 동시에 바인딩하면
단일 클릭 이벤트가 먼저 발생할 수 있습니다.
label.bind("<Button-1>", on_click)
label.bind("<Double-Button-1>", on_double_click)
이 구조에서는
더블 클릭 시
단일 클릭 이벤트도
함께 실행될 수 있습니다.
단일 / 더블 클릭 분리 설계하기
실무에서는
다음과 같은 방식으로
역할을 나누는 경우가 많습니다.
- 단일 클릭 → 선택
- 더블 클릭 → 실행 / 열기
즉,
서로 다른 의미를 부여하는 것이 핵심입니다.
Listbox에서 더블 클릭 처리하기
더블 클릭은
Listbox와 함께
아주 자주 사용됩니다.
import tkinter as tk
window = tk.Tk()
window.geometry("300x200")
listbox = tk.Listbox(window)
listbox.pack(pady=20)
items = ["파일1", "파일2", "파일3"]
for item in items:
listbox.insert(tk.END, item)
def on_double_click(event):
index = listbox.curselection()
if index:
print("선택:", listbox.get(index[0]))
listbox.bind("<Double-Button-1>", on_double_click)
window.mainloop()
항목을
더블 클릭하면
선택된 값이 출력됩니다.

선택: 파일1
더블 클릭은 언제 사용하면 좋을까
더블 클릭은
다음과 같은 경우에 적합합니다.
- 항목 실행 / 열기
- 상세 화면 진입
- 확정 동작 처리
반대로
모바일 UI처럼
더블 클릭 개념이 없는 환경에서는
사용을 피하는 것이 좋습니다.
더블 클릭 이벤트 처리 시 주의할 점
더블 클릭은
사용자에게
의도가 명확하지 않을 수 있습니다.
따라서
- 단일 클릭으로도 가능한 동작인지
- 더블 클릭이 꼭 필요한지
한 번 더 고민하는 것이 좋습니다.
이번 강의 핵심 정리
이번 강의에서 꼭 기억해야 할 내용입니다.
- 더블 클릭 이벤트는 <Double-Button-1>이다
- bind 방식으로 처리한다
- event 객체를 그대로 사용할 수 있다
- 단일 클릭과 함께 쓸 때 주의해야 한다
다음 강의 예고
다음 강의에서는
ttk 위젯이란 무엇인가를 다룹니다.
이제부터는
UI가
조금 더 “프로그램답게” 변하기 시작합니다.
'⚙️ Python > 🪟 Tkinter 기초' 카테고리의 다른 글
| [Tkinter] 36강 ttk Button과 Label 사용하기 (0) | 2026.02.07 |
|---|---|
| [Tkinter] 35강 ttk 위젯이란 무엇인가 (0) | 2026.02.07 |
| [Tkinter] 33강 엔터 키로 버튼 동작 시키기 (0) | 2026.02.06 |
| [Tkinter] 32강 이벤트 객체(event) 구조 이해하기 (0) | 2026.02.05 |
| [Tkinter] 31강 키보드 입력 이벤트 처리하기 (0) | 2026.02.05 |