ক্যানভাস উইজেটের দুটি স্থানাঙ্ক ব্যবস্থা রয়েছে:(ক) উইন্ডো স্থানাঙ্ক সিস্টেম এবং (খ) ক্যানভাস সমন্বয় ব্যবস্থা। উইন্ডো কোঅর্ডিনেট সিস্টেম সবসময় উইন্ডোর বাম কোণ (0,0) থেকে শুরু হয়, যখন ক্যানভাস কোঅর্ডিনেট সিস্টেম নির্দিষ্ট করে যে আইটেমগুলি আসলে ক্যানভাসে কোথায় রাখা হয়েছে।
উইন্ডো কোঅর্ডিনেট সিস্টেমকে ক্যানভাস কোঅর্ডিনেট সিস্টেমে রূপান্তর করতে, আমরা নিম্নলিখিত দুটি পদ্ধতি ব্যবহার করতে পারি,
canvasx(event.x) canvas(event.y)
যদি আমরা উইন্ডো কোঅর্ডিনেট সিস্টেমের ক্ষেত্রে বিবেচনা করি, তাহলে মাউস ইভেন্টগুলি শুধুমাত্র উইন্ডো স্থানাঙ্ক সিস্টেমে ঘটে। আমরা উইন্ডো কোঅর্ডিনেটকে ক্যানভাস কোঅর্ডিনেট সিস্টেমে রূপান্তর করতে পারি।
উদাহরণ
এই অ্যাপ্লিকেশনে, আমরা একটি ক্যানভাস উইজেটের ভিতরে মাউস পয়েন্টারের অবস্থান পাব।
# Import the required libraries from tkinter import * # Create an instance of tkinter frame or window win = Tk() # Set the size of the window win.geometry("700x350") # Create a canvas widget canvas = Canvas(win) canvas.pack() def on_button_pressed(event): start_x = canvas.canvasx(event.x) start_y = canvas.canvasy(event.y) print("start_x, start_y =", start_x, start_y) def on_button_motion(event): end_x = canvas.canvasx(event.x) end_y = canvas.canvasy(event.y) print("end_x, end_y=", end_x, end_y) # Bind the canvas with Mouse buttons canvas.bind("<Button-1>", on_button_pressed) canvas.bind("<Button1-Motion>", on_button_motion) # Add a Label widget in the window Label(win, text="Move the Mouse Pointer and click " "anywhere on the Canvas").pack() win.mainloop()
আউটপুট
উপরের কোডটি চালানো হলে একটি উইন্ডো প্রদর্শিত হবে।
যদি আমরা মাউস পয়েন্টারটি সরান এবং ক্যানভাসের যেকোনো জায়গায় ক্লিক করি, তাহলে এটি কনসোলে পয়েন্টারের আপেক্ষিক স্থানাঙ্ক প্রিন্ট করবে।
start_x, start_y = 340.0 159.0