Tkinter เป็นไลบรารีพัฒนาแอปพลิเคชัน GUI แบบ Python-based ซึ่งมักใช้สร้างแอปพลิเคชันเดสก์ท็อปที่มีประโยชน์ วิджชั่น Listbox เป็นอีกวิджชั่นหนึ่งของ Tkinter ซึ่งใช้เป็นคอนเทนเนอร์แสดงรายการรายการในรูปแบบ Listbox
ในการกำหนดรายการใน Listbox widget คุณต้องสร้างคอนสตรัคเตอร์ของ Listbox(root, width, height, **options) คุณสามารถแทรกรายการได้ไม่จำกัดจำนวนที่ต้องการแสดงใน listbox
สมมติว่าคุณต้องการแก้ไขรายการเฉพาะใน Tkinter Listbox คุณสามารถสร้างปุ่มเพื่อเลือกรายการจากรายการที่ต้องการแก้ไข และเรียกเมธอด delete() เพื่อลบค่าที่มีอยู่ จากนั้นเมื่อลบค่าแล้ว คุณสามารถ insert() รายการใหม่ใน listbox มาดูตัวอย่างเพื่อเข้าใจการทำงาน
ตัวอย่าง
# นำเข้าไลบรารีที่จำเป็น
from tkinter import *
from tkinter import ttk
# สร้างอินสแตนซ์เฟรมหรือหน้าต่าง Tkinter
win = Tk()
# กำหนดขนาดหน้าต่าง
win.geometry("700x350")
# สร้าง Listbox widget
lb = Listbox(win, width=100, height=10, background="purple3", foreground="white", font=('Times 13'), selectbackground="white")
lb.pack()
# เลือกรายการและลบรายการก่อน
# เมื่อลบรายการแล้ว เราสามารถแทรกใหม่ใน listbox
def edit_current():
for item in lb.curselection():
lb.delete(item)
lb.insert("end", "foo")
# เพิ่มรายการใน Listbox
lb.insert("end", "item1", "item2", "item3", "item4", "item5")
# เพิ่มปุ่มแก้ไขและลบรายการ Listbox
ttk.Button(win, text="Edit", command=edit_current).pack()
win.mainloop()
ในตัวอย่างนี้ เราสร้างรายการโดยใช้ Listbox widget เราสร้างปุ่มชื่อ "Edit" ซึ่งปรับเปลี่ยนค่าที่มีอยู่ของรายการที่เลือก ด้วยวิธีนี้ คุณสามารถแทนที่/แก้ไขค่าของรายการใดๆ ในรายการใน Listbox widget ได้
ผลลัพธ์
เมื่อรัน จะสร้างหน้าต่างเอาต์พุตดังนี้ –

ตอนนี้ เลือกรายการจากรายการและคลิกปุ่ม "Edit" สมมติคุณเลือก "item5" และคลิก "Edit" รายการนั้นจะถูกแทนที่ด้วย "foo"
