GUI উইন্ডোর অনেক কন্ট্রোল থাকে যেমন লেবেল, বাটন, টেক্সট বক্স ইত্যাদি। কখনও কখনও আমরা চাই উইন্ডো দেখার সময় লেবেলের মতো কন্ট্রোলের কন্টেন্ট স্বয়ংক্রিয়ভাবে আপডেট হয়।
নির্দিষ্ট সময় পর একটি ফাংশন চালানোর জন্য after() ব্যবহার করা যায়। উদাহরণস্বরূপ, ১০০০ মিলিসেকেন্ড মানে ১ সেকেন্ড। যে ফাংশনটি নির্দিষ্ট সময় পর বারবার কল হবে, সেটি টেক্সট বা আপনার চাওয়া যেকোনো আপডেট করবে।
আমাদের উইন্ডোতে একটি লেবেল আছে। আমরা চাই লেবেলের টেক্সট ১ সেকেন্ড পর স্বয়ংক্রিয়ভাবে আপডেট হয়। উদাহরণ সহজ রাখতে গিয়ে ধরি লেবেলটি ০ থেকে ১০০০ পর্যন্ত যেকোনো একটি সংখ্যা দেখাবে। আমরা চাই প্রতিটি ১ সেকেন্ড পর এই সংখ্যা পরিবর্তন হবে।
এটি করা যাবে একটি ফাংশন ডিফাইন করে যা লেবেলের টেক্সটকে ০ থেকে ১০০০ পর্যন্ত যেকোনো র্যান্ডম সংখ্যায় পরিবর্তন করবে। after() ব্যবহার করে এই ফাংশনটি ১ সেকেন্ড ইন্টারভালে বারবার কল করা যাবে।
উদাহরণ
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) # 1000 ms পর আবার নিজে থেকে চলে
# প্রথমবার চালান
update()
root.mainloop()
এটি ১০০০ মিলিসেকেন্ড পর লেবেলের টেক্সটকে নতুন একটি সংখ্যায় স্বয়ংক্রিয়ভাবে পরিবর্তন করবে। আপনি প্রয়োজন অনুযায়ী টাইম ইন্টারভাল পরিবর্তন করতে পারেন। update ফাংশনটি আপনার প্রয়োজনীয় আপডেট করার জন্য মডিফাই করা যাবে।
root.after(1000, update)
কোডের এই লাইনটি update() ফাংশনটি আবার কল করার প্রধান কাজ করে।
root.after()-এর প্রথম প্যারামিটার মিলিসেকেন্ডে টাইম ইন্টারভাল নির্দিষ্ট করে जिसके পর ফাংশনটি আবার কল হবে।
দ্বিতীয় প্যারামিটার কল করার জন্য ফাংশনের নাম নির্দিষ্ট করে।