कैनवास विजेट में दो समन्वय प्रणालियां हैं:(ए) विंडो समन्वय प्रणाली और (बी) कैनवास समन्वय प्रणाली। विंडो समन्वय प्रणाली हमेशा विंडो में सबसे बाएं कोने (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