Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

วิธีแก้ไขรายการเฉพาะใน TKinter Listbox โดยตรง

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 ได้

ผลลัพธ์

เมื่อรัน จะสร้างหน้าต่างเอาต์พุตดังนี้ –

วิธีแก้ไขรายการเฉพาะใน TKinter Listbox โดยตรง

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

วิธีแก้ไขรายการเฉพาะใน TKinter Listbox โดยตรง