我试图运行我的tkinter代码,但它不起作用

2024-09-29 18:47:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我的代码是用python编写的(tkinter),它可以移动球的列表:

for i in range(num_balls):
        c_col = rand(0,3)
        x = rand(20, 1280)
        y = rand(20, 550)

        xy = (x, y, x+diameter, y+diameter)

        ball.append(canvas2.create_oval(xy, fill=colour[c_col]))

    canvas2.pack()

    x = [1] * num_balls
    y = [1] * num_balls



    while True:
        # window.listen()
        # window.onkeypress(tog_pause, "p")
        # canvas2.bind("<Return>", tog_pause)

        for i in range(num_balls):
            pos = canvas2.coords(ball[i])
            # pos = position(ball[i])
            if pos[3] > 715 or pos[1] < 0:
                y[i] = -y[i]

            if pos[0] < 0 or pos[2] > 1280:
                x[i] = -x[i]

            canvas2.move(ball[i], x[i], y[i])
        sleep(0.001)
        window.update()

    self.tk.call((self._w, 'coords') + args))]

我得到这个错误:

Exception in Tkinter callback
Traceback (most recent call last):
  File "/usr/lib/python3.8/tkinter/__init__.py", line 1883, in __call__
    return self.func(*args)
  File "Coursework_02.py", line 271, in Name_entre
               ball_maker()
  File "Coursework_02.py", line 230, in ball_maker
    pos = position(ball[i])
  File "Coursework_02.py", line 174, in position
    return canvas2.coords(ball1)
  File "/usr/lib/python3.8/tkinter/__init__.py", line 2761, in coords

以及:

_tkinter.TclError: invalid command name ".!canvas2

我想移动我在代码前面创建的球(未编写),但当我调用coords()函数获取球的位置时,我遇到了一个问题,有人能告诉我如何解决这个问题吗,因为我甚至不明白无效命令名.!canvas的意思


Tags: inpyposselftkinterlinepositioncoords

热门问题