Я хочу, чтобы мой объект продолжал двигаться, но он не будет работать - PullRequest
0 голосов
/ 17 марта 2020

Итак, я хочу, чтобы он продолжал двигаться с назначенной скоростью, но он просто двигается один раз и останавливается. Я думал, что функция после поможет, но это не так. Также я хочу знать, что число делает внутри скобок после

    import tkinter as tk

    root = tk.Tk()
    canvas = tk.Canvas(root, width=1000, height=1000, background='black')
    canvas.pack()

    circle = canvas.create_oval(0, 0, 10, 10, fill='white')

    def move():
        canvas.move(circle, 100, 100)

    move()
    canvas.after(40, move())


    root.mainloop()

Ответы [ 2 ]

0 голосов
/ 17 марта 2020

Вам нужно позвонить after(...) внутри move():

import tkinter as tk

root = tk.Tk()
canvas = tk.Canvas(root, width=1000, height=1000, background='black')
canvas.pack()

circle = canvas.create_oval(0, 0, 10, 10, fill='white')

def move():
    canvas.move(circle, 10, 10)
    canvas.after(50, move)

move()

root.mainloop()

См. здесь о том, как использовать функцию after().

0 голосов
/ 17 марта 2020

Вы должны передать только имя функции в after(), как показано ниже ...

canvas.after(40, move)

Вместо ...

canvas.after(40, move())

Среднее значение после 40 миллисекунд after() функция будет вызов, и тогда ваш объект будет двигаться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...