我正在尝试制作一个非常简单的程序,它所做的就是将鼠标的当前x/y
位置存储在画布上,然后在您使用它们画一条线时使用单击第二次。我已经绑定了它,并且没有收到任何错误,似乎甚至没有激活。任何帮助将不胜感激
from tkinter import *
main = Tk()
c = Canvas(main, width=600, height=600)
c.pack()
#For colored lines
presses = 0
def click(event):
if presses == 0:
initX = int(c.canvasx(event.x))
initY = int(c.canvasy(event.y))
presses == 1
elif presses == 1:
c.create_line(initX, initY,
int(c.canvasx(event.x)),
int(c.canvasy(event.y)))
presses == 0
c.bind("<Button-1>", click)
mainloop()
答案 0 :(得分:0)
这样的事情如何为您工作?
from tkinter import *
main = Tk()
c = Canvas(main, width=600, height=600)
c.pack()
line = []
def click(event):
global line
X = int(c.canvasx(event.x))
Y = int(c.canvasy(event.y))
line.append((X,Y))
if len(line) > 1:
startX,startY = line[-2]
c.create_line(startX, startY, X, Y)
c.bind("<Button-1>", click)
mainloop()
我已经对您的代码进行了一些更改,以存储已单击的X,Y坐标的列表。如果在屏幕上单击了多个点,则会在当前单击的点和最后单击的点之间绘制一条线。
原因是您的代码无法正常工作,因为在click函数的两次调用之间忘记了initX和initY。将它们添加到列表即可解决此问题。