在 Tkinter Canvas 中移动球

tkinterpythongui-programming更新于 2025/7/18 23:08:17

Tkinter 是一个标准 Python 库,用于创建基于 GUI 的应用程序。要创建一个简单的移动球应用程序,我们可以使用 Canvas 小部件,它允许用户添加图像、绘制形状和动画对象。该应用程序具有以下组件,

  • 一个 Canvas 小部件,用于在窗口中绘制椭圆或球。

  • 要移动球,我们必须定义一个函数 move_ball()。在函数中,您必须定义球的位置,当球击中画布墙壁(左、右、上、下)时,该位置将不断更新。

  • 要更新球的位置,我们必须使用 canvas.after(duration, function()),它反映了球在一定时间后改变其位置的情况。

  • 最后,执行代码以运行应用程序。

示例

# 导入所需的库
from tkinter import *

# 创建 tkinter 框架或窗口的实例
win=Tk()

# 设置窗口的大小
win.geometry("700x350")

# 使窗口大小固定
win.resizable(False,False)

# 创建画布小部件
canvas=Canvas(win, width=700, height=350)
canvas.pack()

# 在画布小部件中创建一个椭圆或球
ball=canvas.create_oval(10,10,50,50, fill="green3")

# 移动球
xspeed=yspeed=3

def move_ball():
   global xspeed, yspeed

   canvas.move(ball, xspeed, yspeed)
   (leftpos, toppos, rightpos, bottompos)=canvas.coords(ball)
   if leftpos <=0 or rightpos>=700:
      xspeed=-xspeed

   如果 toppos <=0 或 bottompos >=350:
      yspeed=-yspeed

   canvas.after(30,move_ball)

canvas.after(30, move_ball)

win.mainloop()

输出

运行上述代码将显示一个应用程序窗口,其中画布上有一个可移动的球。


相关文章


有用资源