0

我是 Python 新手,正在尝试一些问题。这是创建一个红绿灯。不知道为什么我不断收到此错误 AttributeError: 'module' object has no attribute 'canvas'

下面的代码

第 9 章 9.25

import tkinter as tk

class TrafficLight(tk.Frame):

    def __init__(self, parent=None):
        tk.Frame.__init__(self, parent, bg='green')
        self.grid()

# create a canvas to draw on

self.canvas = tk.canvas(self, width=260, height=280, bg='white')

self.canvas.grid()


self.make_widgets()


def make_widgets(self):
    self.canvas.create_rectangle(80, 20, 170, 260)

#imagine a square box
# upper left corner coordinates x1, y1
# lower right corner coordinates x2, y2
# and sides of length span for each circle

span = 50
x1 = 100
y1 = 50
x2 = x1 + span
y2 = y1 + span

self.canvas.create_oval(x1, y1, x2, y2, fill='red')
self.canvas.create_oval(x1, y1+70, x1, y2+70, fill='yellow')
self.canvas.create_oval(x1, y1+140, x2, y2+140, fill='green')

if __name__ == '__main__':
    light = TrafficLight()
    light.mainloop()
4

1 回答 1

4

Python 区分大小写。

>>> import tkinter as tk
>>> tk.canvas
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'canvas'
>>> tk.Canvas
<class 'tkinter.Canvas'>
于 2013-01-18T05:56:51.903 回答