In [2]:
from Custom.mediahelper import show_video_as_html # 개발자 정의 모듈
from Custom.mediahelper import print_decorator # 개발자 정의 모듈
05. 리스트 박스¶
In [2]:
from tkinter import *
root = Tk()
title_name = "YongSeokha Tkinter Project"
root.title(title_name)
root.geometry("640x480")
# Listbox 위젯을 생성 (여러 항목을 선택 가능하도록 'extended' 모드 설정, 높이는 0으로 설정하여 자동으로 조정)
listbox = Listbox(root, selectmode="extended", height=0)
# Listbox에 항목 삽입 (0번째 인덱스에 "사과" 추가)
listbox.insert(0, "사과")
# Listbox에 항목 삽입 (1번째 인덱스에 "딸기" 추가)
listbox.insert(1, "딸기")
# Listbox에 항목 삽입 (2번째 인덱스에 "바나나" 추가)
listbox.insert(2, "바나나")
# Listbox에 항목 삽입 (끝 인덱스에 "수박" 추가)
listbox.insert(END, "수박") # END는 현재 리스트의 끝에 삽입하라는 의미
# Listbox에 항목 삽입 (끝 인덱스에 "포도" 추가)
listbox.insert(END, "포도")
# Listbox 위젯을 윈도우에 배치
listbox.pack()
# 버튼이 클릭되었을 때 호출될 함수를 정의
@print_decorator
def btncmd():
# listbox.delete(0) # 맨 앞(0번째) 항목을 삭제
# listbox.size() # Listbox에 들어있는 항목의 총 개수를 확인
# listbox.get(0, 2) # 특정 범위의 항목을 가져오기 (0번째부터 2번째 인덱스까지의 항목)
# listbox 에 담긴 요소 전부 가져오기
listbox_all = listbox.get(0, listbox.size())
# index 와 같이 출력
print([[i for i in enumerate(listbox_all)]])
print()
# 선택된 항목의 인덱스를 확인 (여러 개 선택 시 index가 튜플로 반환됨)
print("선택된 index:", listbox.curselection())
# 선택된 항목이 있을 경우
if listbox.curselection():
print("선택된 항목:", [listbox_all[idx] for idx in listbox.curselection()])
# 선택된 항목 없을 경우
else:
print("선택된 항목 없음")
# 버튼 위젯을 생성하고, 클릭 시 btncmd 함수가 실행되도록 설정
btn = Button(root, text="클릭", command=btncmd)
# 버튼 위젯을 윈도우에 배치
btn.pack()
root.mainloop()
-------------------------------------------------- [[(0, '사과'), (1, '딸기'), (2, '바나나'), (3, '수박'), (4, '포도')]] 선택된 index: (2,) 선택된 항목: ['바나나'] -------------------------------------------------- -------------------------------------------------- [[(0, '사과'), (1, '딸기'), (2, '바나나'), (3, '수박'), (4, '포도')]] 선택된 index: (1,) 선택된 항목: ['딸기'] -------------------------------------------------- -------------------------------------------------- [[(0, '사과'), (1, '딸기'), (2, '바나나'), (3, '수박'), (4, '포도')]] 선택된 index: (3, 4) 선택된 항목: ['수박', '포도'] --------------------------------------------------
In [3]:
show_video_as_html("../Media/video_05.mp4")
'Video'
'Python > Tkinter' 카테고리의 다른 글
07. 라디오 버튼(단일 선택) (0) | 2024.11.20 |
---|---|
06. 체크 박스(다중 선택 가능) (0) | 2024.11.20 |
04. 텍스트박스 (0) | 2024.11.20 |
03. 라벨 (0) | 2024.11.20 |
02. 버튼 (0) | 2024.11.20 |