【问题标题】:How to draw a Rectangle within a tkinter Program?如何在 tkinter 程序中绘制矩形?
【发布时间】:2022-01-15 07:52:27
【问题描述】:

目前,我有一个功能可以检测并报告鼠标在画布上的点击位置。我需要它做的是报告第一次点击,然后在鼠标上绘制一个矩形,直到它检测到第二次点击。下面是画布项的代码:

Canvas = Canvas(FrameFractal,height = 300,width = 496)
Canvas.pack()
StartImage = ImageTk.PhotoImage(master=FrameFractal , file = "Program files\Show.png")
ImageContainer = Canvas.create_image(250,150, image=StartImage)
Canvas.tag_bind(ImageContainer, '<Button-1>',Zoom)


def Zoom(event):
   print(f"Canvas clicked at {event.x, event.y}")

如果有帮助,Canvas 是 Fractal Image (StartImage) 后面的灰色项目: Main Program

任何帮助将不胜感激!

【问题讨论】:

标签: python tkinter tkinter-canvas


【解决方案1】:

你可以使用

canvas.create_rectangle(x1, y1, x2, y2, **kwargs)

传入的坐标应该是你从事件中得到的坐标,比如

canvas.create_rectangle(event.x-size, event.y-size, event.x+size, event.y+size)

【讨论】:

  • 我目前正在尝试使用它,只是努力让矩形从原始点击绘制到鼠标,直到它检测到第二次点击(矩形停止“跟随”鼠标)
  • 你可能想要创建一个线程,它允许你运行一个代码,在你的鼠标上从你的正常代码并行生成矩形。在你可能想要的线程中: - 删除最后一个矩形 - 从指针位置绘制一个新矩形(我认为你可以使用函数获取位置) - 使线程休眠 50 毫秒。
猜你喜欢
  • 2015-06-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-25
  • 2014-07-30
  • 2016-02-23
  • 1970-01-01
相关资源
最近更新 更多