Python Tkinter坐标画布错误

时间:2017-01-20 07:08:32

标签: python tkinter tkinter-canvas

我是初学者。我想知道x1在移动时的坐标,所以它会不断更新。

这是我的代码。

v.getID

以下是错误消息:

onoff

使用退出代码1完成处理

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

您对类和对象的工作方式有一些基本的误解。而不是这样做:

my_canvas = Example(root)
my_canvas.pack(fill="both", expand=True)
mycar = Car(60, 60, 125, 90,3,0,"red",Example)

(注意:您还需要在创建窗口小部件的单独行上调用pack并将其分配给变量。请参阅https://stackoverflow.com/a/1101765/7432

你需要这样做:

my_canvas = Example(root).pack(fill="both", expand=True)
mycar = Car(60, 60, 125, 90,3,0,"red", my_canvas)

您需要传递Example实例(例如:my_canvas),而不是(例如:{{1} })。此外,Example需要使用如下示例:

Car

答案 1 :(得分:0)

您的汽车无法访问示例对象。我会在 init 上将我的示例传递给我的汽车,以便它可以访问其上下文。 e.g。

class Car:
    def __init__(self, x, y, example):
        ...
        self.example=example
    def do_stuff(self):
        self.example.canvas.draw(whatever)

example = Example(args)
car = Car(3,4,example)
car.do_stuff()

在此示例中,Car对象可以访问您在Example类中创建的画布,因此可以自己绘制等等。