반응형
리스트박스(ListBox)

리스트박스를 이용하여 목록을 불러와 추가, 제거 또는 선택할수 있습니다.

리스트박스는 리스트 항목들을 보여주는 위젯을 생성합니다.

리스트박스에는 같은 폰트와 색상을 가진 문자열만 포함될 수 있습니다.

사용자는 하나 또는 그 이상의 항목들을 선택할 수 있습니다.

 

생성

tkinter.ListBox(윈도우 창, 파라미터1, 파라미터2, 파라미터3, ...... )

파이썬 리스트박스 옵션 설정
파이썬 위젯 리스트박스

relief [default value:'sunken'] - Listbox위젯의 테두리모양

    "flat", "groove", "raised", "ridge", "solid", "sunken"

♠ width [default value:20] : number of characters - Listbox위젯의 가로크기

   값을 0으로 주면 문자열의 길이에 맞춰서 Listbox의 크기가 자동으로 조절된다.

♠ height [default value:10] : number of characters - Listbox위젯의 세로크기

 값을 0으로 주면 아이템의 갯수에 맞춰서 Listbox의 크기가 자동으로 조절된다.

 

[ 파이썬 위젯 리스트박스 예제1 ]

  - 삭제버튼 : 목록을 클릭하고 삭제버튼을 누르면 목록이 삭제됩니다.

  - 모두삭제버튼 : 목록 전체가 삭제됩니다.

  - 초기화 : 목록이 1번 ~ 8번까지 추가됩니다.

  - 저장하기 : 목록이 저장됩니다.

파이썬 리스트박스 위젯

[ 소스코드 ]

from tkinter import *

win = Tk()
win.geometry('200x350')
win.title("파이썬 위젯 리스트박스")

def change():
    for item in ["탕수육","피자","치킨","햄버거", "스테이크","족발","짜장면","짬뽕"]:
       lb.insert(END, item)

def delete():
    lb.delete(0, END)

def save():
    z = lb.get(0, END)
    print(z)
    
label = Label(win, text ="현재 먹고 싶은 음식 순위")
label.pack()

lb=Listbox(win, selectmode='extended')
lb.insert(0, "1번 탕수육")
lb.insert(1, "2번 피자")
lb.insert(2, "3번 치킨")
lb.insert(3, "4번 햄버거")
lb.insert(END, "5번 스테이크")
lb.insert(END, "6번 족발")
lb.insert(END, "7번 짜장면")
lb.insert(END, "8번 짬뽕")
lb.pack()

btn = Button(win, text ="삭    제", command = lambda lb=lb: lb.delete(ANCHOR))
btn.pack()

btn2 = Button(win, text ="모두삭제", command=delete)
btn2.pack()

btn3 = Button(win, text ="초 기 화", command=change)
btn3.pack()

btn4 = Button(win, text ="저장하기", command=save)
btn4.pack()

win.mainloop()

 

 

[ 파이썬 위젯 리스트박스 예제2 ]


  - 오른쪽에 스크롤바를 만들어 봅시다.

  - 다음은 스크롤바를 생성하는 코드입니다

sb = Scrollbar(win, orient=VERTICAL)
sb.pack(side=RIGHT, fill=Y)

  -  다음은 스크롤바와 리스트박스를 연결시켜주는 코드입니다. 

     없으면 스크롤바만 생기고, 두 위젯이 서로 상호작용하지 않습니다.

sb.configure(command=lb.yview)
lb.configure(yscrollcommand=sb.set)

 

 

파이썬 리스트박스

from tkinter import *

win = Tk()
win.title("파이썬 위젯 리스트박스")

sb = Scrollbar(win, orient=VERTICAL)
sb.pack(side=RIGHT, fill=Y)

lb=Listbox(win, selectmode='extended', height=5)
lb.insert(0, "1번 탕수육")
lb.insert(1, "2번 피자")
lb.insert(2, "3번 치킨")
lb.insert(3, "4번 햄버거")
lb.insert(END, "5번 스테이크")
lb.insert(END, "6번 족발")
lb.insert(END, "7번 짜장면")
lb.insert(END, "8번 짬뽕")
lb.pack()

sb.configure(command=lb.yview)
lb.configure(yscrollcommand=sb.set)

win.mainloop()
반응형
Posted by 명문코딩컴퓨터
,