หากคุณต้องการสร้างรายการแบบดรอปดาวน์ของรายการและเปิดใช้งานรายการในรายการให้ผู้ใช้เลือก คุณสามารถใช้ Combobox widget Combobox widget ช่วยให้คุณสร้างรายการแบบดรอปดาวน์ที่รายการในรายการสามารถเลือกได้ทันที อย่างไรก็ตาม หากคุณต้องการรับดัชนีของรายการที่เลือกใน Combobox widget คุณสามารถใช้เมธอด get() เมธอด get() คืนค่าจำนวนเต็มของรายการที่เลือกซึ่งเรียกว่าดัชนีของรายการ
ตัวอย่าง
มาดูตัวอย่างว่ามันทำงานอย่างไร ในตัวอย่างนี้ เราสร้างรายการวันของสัปดาห์ในรายการแบบดรอปดาวน์ และทุกครั้งที่ผู้ใช้เลือกวันจากรายการแบบดรอปดาวน์ มันจะพิมพ์และแสดงดัชนีของรายการที่เลือกบน Label widget ในการพิมพ์ดัชนี เราสามารถต่อสตริงโดยแปลงดัชนีที่กำหนดเป็นสตริง
# นำเข้าไลบรารีที่จำเป็น
from tkinter import *
from tkinter import ttk
# สร้างอินสแตนซ์เฟรมหรือหน้าต่าง Tkinter
win = Tk()
# กำหนดขนาดหน้าต่าง
win.geometry("700x350")
# สร้างฟังก์ชันล้าง combobox
def clear_cb():
cb.set('')
# กำหนด Tuple วัน
days = ('Sun','Mon','Tue','Wed','Thu','Fri','Sat')
# ฟังก์ชันพิมพ์ดัชนีตัวเลือกที่เลือกใน Combobox
def callback(*arg):
Label(win, text="The value at index " + str(cb.current()) + " is" + " " + str(var.get()), font=('Helvetica 12')).pack()
# สร้าง combobox widget
var = StringVar()
cb = ttk.Combobox(win, textvariable=var)
cb['values'] = days
cb['state'] = 'readonly'
cb.pack(fill='x', padx=5, pady=5)
# ตั้งค่าการติดตามสำหรับตัวแปรที่กำหนด
var.trace('w', callback)
# สร้างปุ่มล้างค่า combobox ที่เลือก
button = Button(win, text="Clear", command=clear_cb)
button.pack()
win.mainloop()
ผลลัพธ์
การรันโค้ดด้านบนจะแสดง combobox widget พร้อมรายการวัน ทุกครั้งที่คุณเลือกวันจากรายการ จะพิมพ์ดัชนีและรายการที่ตรงกันบน label widget
