如何在 Tkinter Python 的点击事件上在 Canvas 上绘制一个点?


考虑一个这样的情况,创建这样一个 GUI 应用程序:当我们用鼠标按钮单击窗口时,它会存储坐标并绘制一个点。Tkinter 提供允许用户将键或按钮与函数绑定的事件。

若要在单击事件上绘制一个点,我们可以遵循以下一般步骤:

  • 创建一个 Canvas 小部件并将其打包以在窗口中显示。

  • 定义一个在用户执行单击事件时作为事件来工作的函数 **draw_dot()**。

  • 创建一个全局变量,该变量记数Canvas 中的单击次数。

  • 如果计数变为二,则在第一个和第二个坐标之间绘制一条线。

  • 将鼠标按钮与回调函数绑定,以完全控制函数。

示例

# Import the required libraries
from tkinter import *
from tkinter import ttk

# Create an instance of tkinter frame or window
win=Tk()

# Set the size of the window
win.geometry("700x350")

# Define a function to draw the line between two points
def draw_line(event):
   x1=event.x
   y1=event.y
   x2=event.x
   y2=event.y
   # Draw an oval in the given co-ordinates
   canvas.create_oval(x1,y1,x2,y2,fill="black", width=20)

# Create a canvas widget
canvas=Canvas(win, width=700, height=350, background="white")
canvas.grid(row=0, column=0)
canvas.bind('<Button-1>', draw_line)
click_num=0

win.mainloop()

输出

运行以上代码以显示一个窗口。当你在画布内的任何位置单击时,它将在该点绘制一个点。

更新于: 05-8 月-2021

3K+ 浏览量

提升你的 职业

完成课程,获得认证

开始学习
广告
© . All rights reserved.