python 五子棋 獲得鼠標左鍵點的坐標


點坐標的取自:

from tkinter import *

root=Tk()

#創建一個框架,在這個框架中響應事件
frame=Frame(root,width=200,height=200)

def callBackLeft(event):
    print("相對於應用程序左上角的位置,左鍵點擊的位置是",event.x,event.y)
    print("相對於屏幕左上角的位置,左鍵點擊的位置是",event.x_root,event.y_root)

def callBackRight(event):
    print("右鍵點擊的位置是",event.x,event.y)
    print("右鍵點擊的位置是",event.x_root,event.y_root)

frame.bind("<Button-1>",callBackLeft)
frame.bind("<Button-3>",callBackRight)
frame.pack()

mainloop()

執行后 結果如圖:

 

 

對坐標進行 處理和過濾得到 具體坐標

 

from tkinter import *
root = Tk()

size = 16

def piant(event):
    if event.x % 30 > 15:
        event.x = event.x // 30 + 1
    else:
        event.x = event.x // 30
    if event.y % 30 > 15:
        event.y = event.y // 30 + 1
    else:
        event.y = event.y // 30
    # 邊緣檢測
    if event.x > size:
        event.x = size
    if event.y > size:
        event.y = size
    if event.x < 1:
        event.x = 1
    if event.y < 1:
        event.y = 1

    print("x坐標:%d,y坐標:%d"%(event.x,event.y))

canvas = Canvas(root, width=500, height=500)
canvas.pack(expand=YES, fill=BOTH)

canvas.bind("<Button-1>",piant)

canvas.pack()


#畫豎線
for num in range(1, 17):
    canvas.create_line(num * 30, 30,
                       num * 30, 480,
                       width=2)

#畫橫線
for num in range(1, 17):
    canvas.create_line(30, num * 30,
                       480, num * 30,
                       width=2)

root.mainloop()

執行后 結果如圖:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM