Tkinter-এ ইভেন্ট হ্যান্ডলিং হলো ব্যবহারকারীর বিভিন্ন ক্রিয়া যেমন ক্লিক, কী-প্রেস, মাউস মুভমেন্ট ইত্যাদি অনুসারে অ্যাপ্লিকেশনকে সাড়া দেওয়ার প্রক্রিয়া। Tkinter-এ bind() মেথড ব্যবহার করে উইজেটের সাথে ইভেন্ট সংযুক্ত করা যায়। ইভেন্ট হ্যান্ডলিংয়ের মাধ্যমে অ্যাপ্লিকেশনকে আরও ইন্টারেক্টিভ ও ব্যবহারকারী-বান্ধব করা যায়।
Tkinter-এ ইভেন্ট হ্যান্ডলিং
Tkinter-এ ইভেন্ট হ্যান্ডলিংয়ের জন্য bind() মেথড ব্যবহার করা হয়। bind() মেথডটি ইভেন্ট টাইপ এবং একটি ফাংশন গ্রহণ করে, যা ইভেন্ট ঘটলে কল করা হয়।
widget.bind("<event>", function)
কিছু সাধারণ ইভেন্ট
<Button-1>: মাউসের বাম বাটন ক্লিক<Button-2>: মাউসের মাঝের বাটন ক্লিক<Button-3>: মাউসের ডান বাটন ক্লিক<Double-Button-1>: ডাবল ক্লিক<Key>: যেকোনো কী প্রেস<Return>: Enter কী প্রেস<Escape>: Escape কী প্রেস<Motion>: মাউস মুভমেন্ট
উদাহরণ ১: মাউস ক্লিক ইভেন্ট
নিচের উদাহরণে একটি লেবেল এবং একটি বাটনের সাথে মাউস ক্লিক ইভেন্ট যুক্ত করা হয়েছে।
import tkinter as tk
# উইন্ডো তৈরি
window = tk.Tk()
window.title("Mouse Click Event")
# ফাংশন যা মাউস ক্লিক ইভেন্ট হ্যান্ডল করবে
def on_click(event):
print("Mouse clicked at", event.x, event.y)
# একটি লেবেল
label = tk.Label(window, text="Click anywhere on the window")
label.pack(pady=20)
# উইন্ডোর উপর মাউস ক্লিক ইভেন্ট সংযুক্ত করা
window.bind("<Button-1>", on_click)
# উইন্ডো প্রদর্শন
window.mainloop()
এখানে, যখন মাউসের বাম বাটন ক্লিক করা হবে, তখন on_click ফাংশনটি কল হবে এবং মাউসের এক্স ও ওয়াই কোঅর্ডিনেট প্রিন্ট করবে।
উদাহরণ ২: কী-প্রেস ইভেন্ট
নিচের উদাহরণে কী-প্রেস ইভেন্ট যুক্ত করা হয়েছে, যা ব্যবহারকারী যেকোনো কী চাপলে এটি কাজ করবে।
import tkinter as tk
# উইন্ডো তৈরি
window = tk.Tk()
window.title("Key Press Event")
# ফাংশন যা কী-প্রেস ইভেন্ট হ্যান্ডল করবে
def on_key_press(event):
print("Key pressed:", event.keysym)
# উইন্ডোর উপর কী-প্রেস ইভেন্ট সংযুক্ত করা
window.bind("<Key>", on_key_press)
# উইন্ডো প্রদর্শন
window.mainloop()
এখানে, যখন ব্যবহারকারী কোনো কী চাপবে, তখন on_key_press ফাংশনটি কল হবে এবং প্রিন্ট করবে কী কীটি চাপা হয়েছে।
উদাহরণ ৩: বাটনে ক্লিক ইভেন্ট
Tkinter-এর Button উইজেটের সাথে সরাসরি ক্লিক ইভেন্ট যুক্ত করা যায়।
import tkinter as tk
# উইন্ডো তৈরি
window = tk.Tk()
window.title("Button Click Event")
# ফাংশন যা বাটনের ক্লিক ইভেন্ট হ্যান্ডল করবে
def on_button_click():
print("Button Clicked!")
# একটি বাটন তৈরি এবং ক্লিক ইভেন্ট সংযুক্ত করা
button = tk.Button(window, text="Click Me", command=on_button_click)
button.pack(pady=20)
# উইন্ডো প্রদর্শন
window.mainloop()
এখানে on_button_click ফাংশনটি বাটন ক্লিকের মাধ্যমে কল হবে এবং কনসোলে মেসেজ প্রিন্ট করবে।
উদাহরণ ৪: মাউস মুভমেন্ট ইভেন্ট
Tkinter-এ Motion ইভেন্ট ব্যবহার করে মাউস মুভমেন্ট ট্র্যাক করা যায়।
import tkinter as tk
# উইন্ডো তৈরি
window = tk.Tk()
window.title("Mouse Motion Event")
# ফাংশন যা মাউস মুভমেন্ট ইভেন্ট হ্যান্ডল করবে
def on_mouse_move(event):
print("Mouse moved to", event.x, event.y)
# উইন্ডোর উপর মাউস মুভমেন্ট ইভেন্ট সংযুক্ত করা
window.bind("<Motion>", on_mouse_move)
# উইন্ডো প্রদর্শন
window.mainloop()
এখানে, যখন মাউস উইন্ডোর মধ্যে নড়াচড়া করবে, তখন on_mouse_move ফাংশনটি কল হবে এবং মাউসের বর্তমান পজিশন প্রিন্ট করবে।
ইভেন্ট সংক্ষিপ্ত রেফারেন্স
- Button Events:
<Button-1>,<Button-2>,<Button-3>,<Double-Button-1> - Key Events:
<Key>,<Return>,<Escape>,<BackSpace> - Mouse Motion:
<Motion> - Window Close:
<Destroy>
সারসংক্ষেপ
Tkinter-এর ইভেন্ট হ্যান্ডলিং GUI অ্যাপ্লিকেশনকে আরও ইন্টারেক্টিভ ও ব্যবহারকারী-বান্ধব করে। ইভেন্ট হ্যান্ডলিং ব্যবহার করে মাউস ক্লিক, কী-প্রেস এবং মাউস মুভমেন্ট ইত্যাদি অনুযায়ী অ্যাপ্লিকেশন প্রতিক্রিয়া দিতে পারে, যা ব্যবহারকারীদের জন্য আরও আকর্ষণীয় এবং সহজ ব্যবহারযোগ্য ইন্টারফেস তৈরি করতে সাহায্য করে।