Tkinter Combobox विजेट एप्लिकेशन में ड्रॉपडाउन मेनू इम्प्लीमेंट करने के लिए उपयोगी विजेट में से एक है। यह इसके ऊपर Entry विजेट और ListBox विजेट के संयोजन का उपयोग करता है। हम एंट्री फील्ड में आइटम का नाम टाइप करके मेनू आइटम चुन सकते हैं (यदि यह मेनू सूची में मौजूद है)। हालांकि, कभी-कभी, ऐसे मामले हो सकते हैं जब हमें मेनू आइटम चुनने के लिए ऑटोकंप्लीशन का उपयोग करने की आवश्यकता होती है।
ऑटो-कंप्लीशन Combobox बनाने के लिए, हम पहले मेनू सूचीबद्ध करने के लिए एक Listbox बनाएंगे और चयनित मेनू प्रदर्शित करने के लिए एक Entry विजेट बनाएंगे। आप लिस्ट में किसी विशेष कीवर्ड को खोजने के लिए एंट्री विजेट के साथ "Keyrelease" इवेंट बाइंड कर सकते हैं। यदि आइटम मौजूद है, तो हम Listbox विजेट को अपडेट करेंगे।
उदाहरण
इस उदाहरण में, हम दो फंक्शन बनाएंगे जैसे कि:
- एक फंक्शन check(e) यह पता लगाएगा कि दर्ज आइटम लिस्ट में मौजूद है या नहीं। यदि आइटम दर्ज कीवर्ड से मेल खाता है, तो हम एंट्री विजेट को विशेष डेटा इन्सर्ट करके अपडेट करेंगे।
- एक फंक्शन update(data) एंट्री बॉक्स को एंट्री विजेट में मान इन्सर्ट करके अपडेट करेगा।
# आवश्यक लाइब्रेरी इम्पोर्ट करें
from tkinter import *
from tkinter import ttk
# Tkinter फ्रेम या विंडो का इंस्टेंस बनाएं
win = Tk()
# विंडो का आकार सेट करें
win.geometry("700x350")
# विंडो का शीर्षक सेट करें
win.title("Combobox- TutorialsPoint")
# लिस्ट में चयनित आइटम के साथ एंट्री विजेट अपडेट करें
def check(e):
v = entry.get()
if v == '':
data = values
else:
data = []
for item in values:
if v.lower() in item.lower():
data.append(item)
update(data)
def update(data):
# Combobox क्लियर करें
menu.delete(0, END)
# Combobox में मान जोड़ें
for value in data:
menu.insert(END, value)
# लेबल विजेट जोड़ें
label = Label(win, text="Demo Combobox Widget", font=('Helvetica 15 bold'), background="green3")
label.pack(padx=10, pady=25)
# बॉटम लेबल टेक्स्ट जोड़ें
text = Label(win, text="Select a Programming Language")
text.pack(padx=15, pady=20)
# एंट्री विजेट बनाएं
entry = Entry(win, width=35)
entry.pack()
entry.bind('', check)
# आइटम की सूची प्रदर्शित करने के लिए Listbox विजेट बनाएं
menu = Listbox(win)
menu.pack()
# सभी मेनू आइटम की सूची बनाएं
values = ['Python', 'C++', 'Java', 'Ruby on Rails', 'Rust', 'GoLang', 'Objective-C', 'C#', 'PHP', 'Swift', 'JavaScript']
# हमारे कॉम्बोबॉक्स में मान जोड़ें
update(values)
# कॉम्बोबॉक्स ऑनक्लिक बाइंडिंग
win.mainloop() आउटपुट
उपरोक्त Python स्क्रिप्ट चलाने पर एक एंट्री विजेट और एक ListBox वाली विंडो प्रदर्शित होगी। जब भी हम कोई कीवर्ड दर्ज करते हैं, तो यह ListBox विजेट को अपडेट करेगा जो दर्ज कीवर्ड से मेल खाने वाले परिणाम दिखाएगा।
