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

จะแก้ไขรายการเฉพาะในกล่องรายการ TKinter โดยตรงได้อย่างไร?


Tkinter เป็นไลบรารีพัฒนาแอปพลิเคชัน GUI ที่ใช้ Python ซึ่งโดยทั่วไปจะใช้เพื่อสร้างแอปพลิเคชันเดสก์ท็อปที่มีประโยชน์ วิดเจ็ตกล่องรายการเป็นอีกหนึ่งวิดเจ็ต tkinter ซึ่งใช้เป็นคอนเทนเนอร์เพื่อแสดงรายการในรูปแบบกล่องรายการ

ในการกำหนดรายการสิ่งของในวิดเจ็ตกล่องรายการ คุณจะต้องสร้างตัวสร้างของ กล่องรายการ(ราก ความกว้าง ความสูง **ตัวเลือก) . คุณสามารถแทรกรายการได้มากเท่าที่คุณต้องการให้แสดงในกล่องรายการ

สมมติว่าคุณต้องการแก้ไขรายการเฉพาะในกล่องรายการ tkinter จากนั้นคุณสามารถสร้างปุ่มเพื่อเลือกรายการจากรายการที่คุณต้องการแก้ไข จากนั้นเรียกใช้ delete() วิธีการลบค่าที่มีอยู่ออกจากมัน เมื่อลบค่าแล้ว คุณสามารถ insert() รายการใหม่ในกล่องรายการ มาดูตัวอย่างเพื่อทำความเข้าใจวิธีการทำงาน

ตัวอย่าง

# Import the required libraries
from tkinter import *
from tkinter import ttk

# Create an instance of tkinter frame or window
win = Tk()

# Set the size of the window
win.geometry("700x350")

# Create a Listbox widget
lb = Listbox(win, width=100, height=10, background="purple3", foreground="white", font=('Times 13'), selectbackground="white")

lb.pack()

# Select the list item and delete the item first
# Once the list item is deleted,
# we can insert a new item in the listbox
def edit_current():
   for item in lb.curselection():
      lb.delete(item)
      lb.insert("end", "foo")

# Add items in the Listbox
lb.insert("end", "item1", "item2", "item3", "item4", "item5")

# Add a Button To Edit and Delete the Listbox Item
ttk.Button(win, text="Edit", command=edit_current).pack()

win.mainloop()

ในตัวอย่างนี้ เราได้สร้างรายการโดยใช้วิดเจ็ตกล่องรายการ เราได้สร้างปุ่มชื่อ "แก้ไข" ซึ่งโดยทั่วไปจะแก้ไขค่าที่มีอยู่ของรายการที่เลือก เมื่อใช้สิ่งนี้ คุณจะแทนที่/แก้ไขค่าของรายการใดก็ได้ในรายการในวิดเจ็ตกล่องรายการ

ผลลัพธ์

เมื่อดำเนินการ มันจะสร้างหน้าต่างผลลัพธ์ต่อไปนี้ -

จะแก้ไขรายการเฉพาะในกล่องรายการ TKinter โดยตรงได้อย่างไร?

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

จะแก้ไขรายการเฉพาะในกล่องรายการ TKinter โดยตรงได้อย่างไร?