Tkinter:保存给定宽度的绘制线的坐标

时间:2015-05-06 09:03:18

标签: python python-2.7 tkinter

我有这个代码,用户可以用他的鼠标绘画:

from Tkinter import *

class Test:
   def __init__(self):
       self.b1="up"
       self.xold=None
       self.yold=None
   def test(self,obj):
       self.drawingArea=Canvas(obj)
       self.drawingArea.pack()
       self.drawingArea.bind("<Motion>",self.motion)
       self.drawingArea.bind("<ButtonPress-1>",self.b1down)
       self.drawingArea.bind("<ButtonRelease-1>",self.b1up)
   def b1down(self,event):
       self.b1="down"
   def b1up(self,event):
       self.b1="up"
       self.xold=None
       self.yold=None
   def motion(self,event):
      if self.b1=="down":
           if self.xold is not None and self.yold is not None:
               event.widget.create_line(self.xold,self.yold,event.x,event.y,fill="red",width=4,smooth=TRUE)
           self.xold=event.x
           self.yold=event.y


if __name__=="__main__":
   root=Tk()
   root.wm_title("Test")
   v=Test()
   v.test(root)
   root.mainloop()

我想知道如何保存绘制线的坐标,知道线的粗细为4 (宽度可以是小于10的任何整数)?

没有厚度选项,答案对我来说很明显。

提前谢谢。

1 个答案:

答案 0 :(得分:1)

如果您想要的是在绘制宽线时更改的所有像素的列表,则无法获得所需的信息。在画布上创建直线时获得的唯一信息是端点的坐标。

如果线条完全水平或垂直,您可以获得线条的边界框,但这不适用于对角线。