Tkinter में ttk.Combobox
विजेट आपके Python GUI अनुप्रयोगों में ड्रॉपडाउन मेनू बनाने का एक सुविधाजनक तरीका प्रदान करता है। यह ट्यूटोरियल इसकी प्रमुख विशेषताओं और कार्यात्मकताओं के माध्यम से मार्गदर्शन करेगा, आपके प्रोजेक्ट्स में कॉम्बोबॉक्स को प्रभावी ढंग से एकीकृत करने में मदद करने के लिए व्यावहारिक उदाहरण प्रदान करेगा।
विषयसूची:
- बेसिक कॉम्बोबॉक्स उदाहरण
- रूप को अनुकूलित करना: फ़ॉन्ट और शैलियाँ
- ईवेंट हैंडलिंग और उपयोगकर्ता इंटरैक्शन
- गतिशील रूप से कॉम्बोबॉक्स मानों को अद्यतन करना
- केवल-पठन कॉम्बोबॉक्स बनाना
1. बेसिक कॉम्बोबॉक्स उदाहरण
आइए ttk.Combobox
के निर्माण और उपयोग को स्पष्ट करने के लिए एक सरल उदाहरण से शुरू करते हैं:
import tkinter as tk
from tkinter import ttk
root = tk.Tk()
root.title("Combobox Example")
combo = ttk.Combobox(root, values=["विकल्प 1", "विकल्प 2", "विकल्प 3"])
combo.pack(pady=20)
combo.current(0) # डिफ़ॉल्ट मान "विकल्प 1" पर सेट करें
root.mainloop()
यह कोड एक मुख्य विंडो बनाता है, तीन पूर्व-परिभाषित विकल्पों के साथ एक कॉम्बोबॉक्स जोड़ता है, और डिफ़ॉल्ट चयन को “विकल्प 1” पर सेट करता है। tkinter
और ttk
दोनों को आयात करना याद रखें।
2. रूप को अनुकूलित करना: फ़ॉन्ट और शैलियाँ
आप कॉम्बोबॉक्स के रूप को अनुकूलित कर सकते हैं, जैसे कि इसका फ़ॉन्ट:
import tkinter as tk
from tkinter import ttk
import tkinter.font as tkFont
root = tk.Tk()
root.title("Combobox Styling Example")
myFont = tkFont.Font(family="Helvetica", size=12, weight="bold")
combo = ttk.Combobox(root, values=["विकल्प A", "विकल्प B", "विकल्प C"], font=myFont)
combo.pack(pady=20)
combo.current(0)
root.mainloop()
यह उदाहरण दिखाता है कि कैसे एक कस्टम फ़ॉन्ट बनाया जाए और इसे कॉम्बोबॉक्स पर लागू किया जाए। अपने इच्छित रूप को प्राप्त करने के लिए विभिन्न फ़ॉन्ट परिवारों, आकारों और भारों के साथ प्रयोग करें।
3. ईवेंट हैंडलिंग और उपयोगकर्ता इंटरैक्शन
उपयोगकर्ता चयनों पर प्रतिक्रिया करने के लिए, कॉम्बोबॉक्स में ईवेंट बाँधें। जब कोई उपयोगकर्ता कोई आइटम चुनता है तो <<ComboboxSelected>>
ईवेंट ट्रिगर होता है:
import tkinter as tk
from tkinter import ttk
root = tk.Tk()
root.title("Combobox Event Handling")
def combo_selected(event):
selected_item = combo.get()
print(f"चुना गया आइटम: {selected_item}")
combo = ttk.Combobox(root, values=["विकल्प 1", "विकल्प 2", "विकल्प 3"])
combo.pack(pady=20)
combo.current(0)
combo.bind("<<ComboboxSelected>>", combo_selected)
root.mainloop()
यह कोड एक फ़ंक्शन combo_selected
परिभाषित करता है जो चयनित आइटम प्रिंट करता है। bind
विधि इस फ़ंक्शन को <<ComboboxSelected>>
ईवेंट से जोड़ती है।
4. गतिशील रूप से कॉम्बोबॉक्स मानों को अद्यतन करना
आप रनटाइम पर गतिशील रूप से कॉम्बोबॉक्स विकल्पों को अद्यतन कर सकते हैं:
import tkinter as tk
from tkinter import ttk
root = tk.Tk()
root.title("Dynamic Combobox")
combo = ttk.Combobox(root)
combo.pack(pady=20)
def update_combo():
new_values = ["नया विकल्प 1", "नया विकल्प 2", "नया विकल्प 3"]
combo["values"] = new_values
button = tk.Button(root, text="Combobox अपडेट करें", command=update_combo)
button.pack()
root.mainloop()
एक बटन update_combo
फ़ंक्शन को ट्रिगर करता है, जो कॉम्बोबॉक्स के values
विशेषता को संशोधित करता है।
5. केवल-पठन कॉम्बोबॉक्स बनाना
कॉम्बोबॉक्स को केवल-पठन (सीधा टेक्स्ट प्रविष्टि रोकने) बनाने के लिए, state
विकल्प का उपयोग करें:
import tkinter as tk
from tkinter import ttk
root = tk.Tk()
root.title("Read-Only Combobox")
combo = ttk.Combobox(root, values=["विकल्प 1", "विकल्प 2", "विकल्प 3"], state="readonly")
combo.pack(pady=20)
combo.current(0)
root.mainloop()
state="readonly"
सेट करने से सीधी टेक्स्ट इनपुट अक्षम हो जाती है, जिससे केवल ड्रॉपडाउन से चयन की अनुमति मिलती है।