GUI विंडो में कई कंट्रोल्स होते हैं जैसे लेबल्स, बटन्स, टेक्स्ट बॉक्सेस, आदि। हम कभी-कभी चाहते हैं कि हमारे कंट्रोल्स जैसे लेबल्स का कंटेंट विंडो देखते समय ऑटोमैटिकली अपडेट हो।
हम after() का उपयोग एक निश्चित समय के बाद फंक्शन चलाने के लिए कर सकते हैं। उदाहरण के लिए, 1000 मिलीसेकंड का मतलब 1 सेकंड होता है। वह फंक्शन जिसे हम एक निश्चित समय के बाद लगातार कॉल करते हैं, टेक्स्ट या किसी भी अपडेट को अपडेट करेगा जो आप होना चाहते हैं।
हमारी विंडो पर एक लेबल है। हम चाहते हैं कि लेबल का टेक्स्ट हर 1 सेकंड के बाद ऑटोमैटिकली अपडेट हो। उदाहरण को आसान रखने के लिए, मान लीजिए हम चाहते हैं कि लेबल 0 और 1000 के बीच कोई नंबर दिखाए। हम चाहते हैं कि यह नंबर हर 1 सेकंड के बाद बदले।
हम एक फंक्शन परिभाषित करके ऐसा कर सकते हैं जो लेबल के टेक्स्ट को 0 और 1000 के बीच किसी रैंडम नंबर में बदल देगा। हम after() का उपयोग करके इस फंक्शन को 1 सेकंड के अंतराल पर लगातार कॉल कर सकते हैं।
उदाहरण
from tkinter import *
from random import randint
root = Tk()
lab = Label(root)
lab.pack()
def update():
lab['text'] = randint(0, 1000)
root.after(1000, update) # run itself again after 1000 ms
# run first time
update()
root.mainloop()
यह लेबल के टेक्स्ट को हर 1000 मिलीसेकंड के बाद किसी नए नंबर में ऑटोमैटिकली बदल देगा। आप आवश्यकतानुसार समय अंतराल बदल सकते हैं। अपडेट फंक्शन को आवश्यक अपडेशन करने के लिए मॉडिफाई किया जा सकता है।
root.after(1000, update)
कोड की यह लाइन फंक्शन update() को फिर से कॉल करने का मुख्य कार्य करती है।
root.after() में पहला पैरामीटर मिलीसेकंड में समय अंतराल निर्दिष्ट करता है जिसके बाद आप फंक्शन को फिर से कॉल करना चाहते हैं।
दूसरा पैरामीटर फिर से कॉल किए जाने वाले फंक्शन का नाम निर्दिष्ट करता है।