Python में यूजर इंटरफेस बनाने के लिए Tkinter लेबल्स बहुत ज़रूरी हैं। लेबल में दिखाए गए टेक्स्ट को प्राप्त करना एक सामान्य काम है, जो अक्सर आपके एप्लिकेशन के दूसरे हिस्सों को अपडेट करने या जानकारी को प्रोसेस करने के लिए ज़रूरी होता है। यह लेख इसे प्राप्त करने के तीन तरीकों का पता लगाता है, जिनमें से प्रत्येक की अपनी ताकत और कमज़ोरियाँ हैं।
विषय-सूची
cget()
विधि का उपयोग करना- लेबल के आंतरिक डिक्शनरी तक पहुँचना
- गतिशील टेक्स्ट के लिए
StringVar
का उपयोग करना
cget()
विधि का उपयोग करना
cget()
विधि Tkinter विजेट के कॉन्फ़िगरेशन विकल्पों, जिसमें लेबल का टेक्स्ट भी शामिल है, को प्राप्त करने का सबसे सरल और सीधा तरीका प्रदान करती है। यह स्थिर टेक्स्ट के लिए कुशल और विश्वसनीय है।
import tkinter as tk
root = tk.Tk()
label = tk.Label(root, text="नमस्ते, Tkinter!")
label.pack()
label_text = label.cget("text")
print(f"लेबल टेक्स्ट: {label_text}") # आउटपुट: लेबल टेक्स्ट: नमस्ते, Tkinter!
root.mainloop()
लेबल के आंतरिक डिक्शनरी तक पहुँचना
Tkinter विजेट्स आंतरिक रूप से डिक्शनरी के रूप में दर्शाए जाते हैं जिनमें कॉन्फ़िगरेशन विकल्प होते हैं। आप लेबल का टेक्स्ट प्राप्त करने के लिए “text” कुंजी तक पहुँच सकते हैं। हालाँकि, यह विधि कम मज़बूत है क्योंकि यह आंतरिक कार्यान्वयन विवरणों पर निर्भर करती है जो भविष्य के संस्करणों में बदल सकते हैं। cget()
को आम तौर पर प्राथमिकता दी जाती है।
import tkinter as tk
root = tk.Tk()
label = tk.Label(root, text="नमस्ते, Tkinter!")
label.pack()
label_text = label["text"]
print(f"लेबल टेक्स्ट: {label_text}") # आउटपुट: लेबल टेक्स्ट: नमस्ते, Tkinter!
root.mainloop()
गतिशील टेक्स्ट के लिए StringVar
का उपयोग करना
अक्सर बदलते टेक्स्ट वाले लेबल्स के लिए, StringVar
का उपयोग करने की सलाह दी जाती है। यह Tkinter वेरिएबल अपने मान में परिवर्तन होने पर लेबल के प्रदर्शन को स्वचालित रूप से अपडेट करता है, जिससे डेटा और प्रदर्शन सिंक्रनाइज़ रहते हैं।
import tkinter as tk
root = tk.Tk()
text_variable = tk.StringVar(value="नमस्ते, Tkinter!")
label = tk.Label(root, textvariable=text_variable)
label.pack()
label_text = text_variable.get()
print(f"लेबल टेक्स्ट: {label_text}") # आउटपुट: लेबल टेक्स्ट: नमस्ते, Tkinter!
text_variable.set("टेक्स्ट बदल गया है!")
label_text = text_variable.get()
print(f"लेबल टेक्स्ट: {label_text}") # आउटपुट: लेबल टेक्स्ट: टेक्स्ट बदल गया है!
root.mainloop()
यह दृष्टिकोण कोड को सरल करता है और गतिशील अनुप्रयोगों में रखरखाव को बढ़ाता है।
संक्षेप में, जबकि तीनों विधियाँ काम करती हैं, स्थिर लेबल्स के लिए cget()
सबसे अच्छा है, और गतिशील परिदृश्यों के लिए StringVar
बेहतर है। जब तक बिल्कुल आवश्यक न हो, लेबल के आंतरिक डिक्शनरी तक सीधे पहुँचने से बचें।