Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Cách lấy tọa độ chuột trên Canvas có thanh cuộn trong Tkinter


Canvas có hai hệ tọa độ: cửa sổ (window) và canvas. Để chuyển từ tọa độ cửa sổ (event.x, event.y) sang tọa độ canvas, dùng canvas.canvasx(event.x) và canvas.canvasy(event.y).

Ví dụ minh họa

from tkinter import *

win = Tk()
win.geometry("700x350")

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)

canvas.bind("", on_button_pressed)
canvas.bind("", on_button_motion)

Label(win, text="Di chuyển chuột và click vào Canvas").pack()

win.mainloop()

Kết quả đầu ra

Cửa sổ Canvas.

Cách lấy tọa độ chuột trên Canvas có thanh cuộn trong Tkinter

Click chuột in ra tọa độ canvas.

start_x, start_y = 340.0 159.0