Python GUI Programming

गतिशील रूप से अपडेट होने वाले Tkinter टेक्स्ट विजेट

Spread the love

Tkinter टेक्स्ट विजेट्स को गतिशील रूप से अपडेट करना

Tkinter का Text विजेट आपके GUI अनुप्रयोगों में बहु-पंक्ति पाठ प्रदर्शित करने और संपादित करने के लिए एक शक्तिशाली उपकरण है। यह ट्यूटोरियल Text विजेट के भीतर पाठ को गतिशील रूप से अपडेट करने के कई तरीकों को प्रदर्शित करता है, जो बटन क्लिक या अन्य उपयोगकर्ता इंटरैक्शन द्वारा ट्रिगर किया जाता है।

विषय-सूची

  1. Tkinter टेक्स्ट विजेट को समझना
  2. विधि 1: delete और insert विधियों का उपयोग करना
  3. विधि 2: उपयोगकर्ता इनपुट के साथ टेक्स्ट सेट करना
  4. विधि 3: पूर्वनिर्धारित विकल्पों के साथ टेक्स्ट सेट करना
  5. विधि 4: टेक्स्ट जोड़ना
  6. निष्कर्ष
  7. FAQ

Tkinter टेक्स्ट विजेट को समझना

Tkinter Text विजेट बहु-पंक्ति पाठ को प्रदर्शित करने और हेरफेर करने के लिए एक स्क्रॉल करने योग्य क्षेत्र प्रदान करता है। एक साधारण Label के विपरीत, यह समृद्ध पाठ स्वरूपण का समर्थन करता है (हालांकि हम यहां विस्तार से इसका पता नहीं लगाएंगे) और केवल प्रदर्शन से परे उपयोगकर्ता संपर्क की अनुमति देता है। प्रदर्शित पाठ को संशोधित करने में आमतौर पर नया पाठ सम्मिलित करने से पहले मौजूदा सामग्री को साफ़ करना शामिल होता है।

विधि 1: delete और insert विधियों का उपयोग करना

यह मौलिक दृष्टिकोण मौजूदा पाठ को साफ़ करने के लिए delete विधि और नया पाठ जोड़ने के लिए insert विधि का उपयोग करता है।


import tkinter as tk

def set_text():
    text_widget.delete("1.0", tk.END)
    text_widget.insert(tk.END, "यह पाठ बटन द्वारा सेट किया गया है!")

root = tk.Tk()
text_widget = tk.Text(root, height=5, width=30)
text_widget.pack()

button = tk.Button(root, text="पाठ सेट करें", command=set_text)
button.pack()

root.mainloop()

यह कोड एक Text विजेट और एक बटन बनाता है। बटन पर क्लिक करने से set_text निष्पादित होता है, विजेट को साफ़ करता है (delete("1.0", tk.END)) और नया पाठ सम्मिलित करता है (insert(tk.END, "यह पाठ...")).

विधि 2: उपयोगकर्ता इनपुट के साथ टेक्स्ट सेट करना

यह विधि उपयोगकर्ताओं को प्रदर्शित करने के लिए पाठ निर्दिष्ट करने की अनुमति देती है।


import tkinter as tk
from tkinter import simpledialog

def set_text_from_input():
    new_text = simpledialog.askstring("इनपुट", "पाठ दर्ज करें:")
    if new_text:
        text_widget.delete("1.0", tk.END)
        text_widget.insert(tk.END, new_text)

root = tk.Tk()
text_widget = tk.Text(root, height=5, width=30)
text_widget.pack()

button = tk.Button(root, text="इनपुट से पाठ सेट करें", command=set_text_from_input)
button.pack()

root.mainloop()

simpledialog.askstring उपयोगकर्ता से इनपुट के लिए संकेत देता है। फिर पिछली सामग्री को साफ़ करने के बाद इनपुट का उपयोग Text विजेट को अपडेट करने के लिए किया जाता है। उत्पादन अनुप्रयोगों के लिए मजबूत त्रुटि हैंडलिंग (जैसे, यदि उपयोगकर्ता रद्द करता है तो None की जाँच करना) जोड़ा जाना चाहिए।

विधि 3: पूर्वनिर्धारित विकल्पों के साथ टेक्स्ट सेट करना

कई पूर्वनिर्धारित पाठ विकल्पों वाले परिदृश्यों के लिए, बटन या मेनू का उपयोग करने पर विचार करें।


import tkinter as tk

def set_predefined_text(text):
    text_widget.delete("1.0", tk.END)
    text_widget.insert(tk.END, text)

root = tk.Tk()
text_widget = tk.Text(root, height=5, width=30)
text_widget.pack()

options = ["विकल्प 1", "विकल्प 2", "विकल्प 3"]
for option in options:
    button = tk.Button(root, text=option, command=lambda text=option: set_predefined_text(text))
    button.pack()

root.mainloop()

यह कई बटन बनाता है, प्रत्येक एक अलग पूर्वनिर्धारित पाठ स्ट्रिंग सेट करता है। lambda फ़ंक्शन सुनिश्चित करता है कि प्रत्येक बटन का आदेश सही विकल्प का उपयोग करता है।

विधि 4: टेक्स्ट जोड़ना

मौजूदा सामग्री को बदलने के बजाय पाठ जोड़ने के लिए, बस delete कॉल को छोड़ दें:


import tkinter as tk

def append_text():
    text_widget.insert(tk.END, "nजोड़ा गया पाठ") #न्यूलाइन कैरेक्टर पर ध्यान दें

root = tk.Tk()
text_widget = tk.Text(root, height=5, width=30)
text_widget.pack()

button = tk.Button(root, text="पाठ जोड़ें", command=append_text)
button.pack()

root.mainloop()

निष्कर्ष

delete और insert का उपयोग करके Tkinter Text विजेट को अपडेट करना सरल है। उपयोगकर्ता इनपुट या पूर्वनिर्धारित विकल्पों के साथ इनका संयोजन गतिशील और इंटरैक्टिव इंटरफेस बनाता है। अवांछित संयोजन से बचने के लिए नई सामग्री सम्मिलित करने से पहले मौजूदा पाठ को साफ़ करना याद रखें।

FAQ

  • प्रश्न: क्या मैं समृद्ध पाठ स्वरूपण का उपयोग कर सकता हूँ? उत्तर: हाँ, Text विजेट टैग का उपयोग करके समृद्ध पाठ स्वरूपण का समर्थन करता है। यह इस ट्यूटोरियल के दायरे से परे है, लेकिन कई ऑनलाइन संसाधन टैग-आधारित स्वरूपण को कवर करते हैं।
  • प्रश्न: मैं बड़ी मात्रा में पाठ को कैसे संभालूँ? उत्तर: व्यापक पाठ के लिए, अधिक कुशल अद्यतन विधियों पर विचार करें, संभवतः पूर्ण हटाने और पुनः सम्मिलित करने से बचें। वृद्धिशील अद्यतन या विशेष पाठ संपादक पुस्तकालयों का अन्वेषण करें।

प्रातिक्रिया दे

आपका ईमेल पता प्रकाशित नहीं किया जाएगा. आवश्यक फ़ील्ड चिह्नित हैं *