Он не говорит, что холст в python тинктер - PullRequest
0 голосов
/ 14 июля 2020

Я написал сценарий:

from tkinter import *
import random
import time

class Ball:
    def _init_(self,canvas,color):
        self.canvas = canvas
        self.id = canvas.create_oval(10,10,25,25,fill=color)
        self.canvas.move(self.id,245, 245, 100)

    def draw(self):
        pass
ball = Ball(canvas,"red")


while 1:
    tk.update_idletasks()
    tk.update()
    time.sleep(0.01)

Он говорит, что холста не существует, и я очень запутался.

Ответы [ 2 ]

0 голосов
/ 15 июля 2020

Ошибка говорит правду: вы нигде не определили canvas. Вам нужно создать как окно root, так и экземпляр класса Canvas.

root = Tk()
canvas = Canvas(root)
canvas.pack(foll="both", expand=True)
ball = Ball(canvas,"red")
0 голосов
/ 14 июля 2020

canvas() - это функция, а не аргумент или переменная. Вы должны добавить (), если хотите правильно назвать его.

self.canvas = canvas()
...