Tkinter का Entry
विजेट GUI एप्लीकेशन में टेक्स्ट इनपुट फील्ड बनाने के लिए एक महत्वपूर्ण तत्व है। अक्सर, आपको इस फील्ड को शुरू में भरने या किसी बटन का उपयोग करके इसकी सामग्री को गतिशील रूप से संशोधित करने की आवश्यकता होगी। यह लेख इसे प्राप्त करने के दो प्राथमिक तरीकों का पता लगाता है: delete
और insert
विधियों का उपयोग करना, और अधिक शक्तिशाली StringVar
क्लास को नियोजित करना।
विषयवस्तु की तालिका
delete
औरinsert
का उपयोग करके एंट्री टेक्स्ट सेट करना- गतिशील टेक्स्ट अपडेट के लिए
StringVar
का उपयोग करना - सर्वोत्तम दृष्टिकोण चुनना
delete
और insert
का उपयोग करके एंट्री टेक्स्ट सेट करना
यह प्रत्यक्ष विधि Entry
विजेट के भीतर पाठ में हेरफेर करती है। यह सरल और बुनियादी परिदृश्यों के लिए प्रभावी है।
import tkinter as tk
def set_entry_text():
entry.delete(0, tk.END) # मौजूदा टेक्स्ट साफ़ करें
entry.insert(0, "Hello, Tkinter!")
root = tk.Tk()
entry = tk.Entry(root)
entry.pack(pady=10)
button = tk.Button(root, text="Set Text", command=set_entry_text)
button.pack()
root.mainloop()
set_entry_text
फ़ंक्शन पहले entry.delete(0, tk.END)
(0
शुरुआत को इंगित करता है, tk.END
अंत को) का उपयोग करके Entry
को साफ़ करता है। फिर, यह entry.insert(0, "Hello, Tkinter!")
के साथ शुरुआत (सूचकांक 0) में “Hello, Tkinter!” डालता है। बटन का command
क्लिक पर इस फ़ंक्शन को निष्पादित करता है।
गतिशील टेक्स्ट अपडेट के लिए StringVar
का उपयोग करना
StringVar
दृष्टिकोण बेहतर लचीलापन प्रदान करता है, खासकर गतिशील टेक्स्ट अपडेट या डेटा बाइंडिंग के लिए। StringVar
एक विशेष प्रकार का चर है जो अपने मान में परिवर्तन होने पर स्वचालित रूप से जुड़े विजेट्स को अपडेट करता है।
import tkinter as tk
def set_entry_text():
my_string.set("This text is set using StringVar!")
root = tk.Tk()
my_string = tk.StringVar() # एक StringVar ऑब्जेक्ट बनाएँ
entry = tk.Entry(root, textvariable=my_string) # Entry को StringVar से लिंक करें
entry.pack(pady=10)
button = tk.Button(root, text="Set Text", command=set_entry_text)
button.pack()
root.mainloop()
यहाँ, एक StringVar
ऑब्जेक्ट (my_string
) टेक्स्ट संग्रहीत करता है। Entry
विजेट textvariable=my_string
का उपयोग करके इस चर से जुड़ा हुआ है। my_string
(my_string.set()
का उपयोग करके) को संशोधित करने से Entry
की सामग्री तुरंत अपडेट हो जाती है।
सर्वोत्तम दृष्टिकोण चुनना
दोनों विधियाँ एक ही परिणाम प्राप्त करती हैं, लेकिन StringVar
को आम तौर पर प्राथमिकता दी जाती है:
- डेटा बाइंडिंग:
StringVar
डेटा बाइंडिंग को सरल करता है,Entry
को एप्लिकेशन के अन्य भागों से जोड़ता है। - दो-तरफ़ा संचार:
Entry
में परिवर्तनStringVar
को भी अपडेट करते हैं, जिससे दो-तरफ़ा डेटा प्रवाह सक्षम होता है। - रखरखाव:
StringVar
बड़ी परियोजनाओं में कोड संगठन और रखरखाव को बढ़ाता है।
अपनी परियोजना की जटिलता और आवश्यकताओं के लिए सबसे उपयुक्त विधि का चयन करें। सरल कार्यों के लिए, delete
/insert
पर्याप्त है; अधिक जटिल अनुप्रयोगों के लिए, StringVar
बेहतर लचीलापन और स्केलेबिलिटी प्रदान करता है।