我一直试图让我的Tkinter包装(专门用来制作一个游戏)工作,但是当它试图绘制一个矩形时,它总是会抛出一个错误。回溯:
Traceback (most recent call last): File "C:\Users\William\Dropbox\IT\Thor\test.py", line 7, in <module>
`aRectangle = thorElements.GameElement(pling,rectangleTup=(True,295,195,305,205,"blue"))`File "C:\Users\William\Dropbox\IT\Thor\thorElements.py", line 79, in __init__
`self.rectangle = self.area.drawRectangle(self)`File "C:\Python33\lib\tkinter\__init__.py", line 1867, in __getattr__
`return getattr(self.tk, attr)`AttributeError: 'tkapp' object has no attribute 'drawRectangle'
代码中与问题相关的部分,
class GameElement():
def __init__(self,area,rectangleTup=(False,12,12,32,32,"red")):
self.area = area
self.lineTup = lineTup #Tuple containing all the data needed to create a line
if self.lineTup[0] == True:
self.kind = "Line"
self.xPos = self.lineTup[1]
self.yPos = self.lineTup[2]
self.line = self.area.drawLine(self)下面是将矩形绘制到画布上的实际方法(在管理画布小部件的类中),在同一个文件的前面:
class Area():
def drawLine(self,line):
topX = line.lineTup[1]
topY = line.lineTup[2]
botX = line.lineTup[3]
botY = line.lineTup[4]
colour = line.lineTup[5]
dashTuple = (line.lineTup[6][0],line.lineTup[6][1])
return self.canvas.create_line(topX,topY,botX,botY,fill=colour,dash=dashTuple)
print("Drew Line")非常感谢所有的输入。
发布于 2014-01-05 23:37:56
错误消息的含义是不言自明。当它说AttributeError: 'tkapp' object has no attribute 'drawRectangle'时,这意味着您正在尝试执行tkapp.drawRectangle或tkapp.drawRectangle(...),但是tkapp没有一个名为drawRectangle的属性或方法。
由于您的代码没有显示您在何处创建tkapp、如何创建它或在何处调用drawRectangle,因此我们不可能知道问题的根源是什么。它很可能是以下之一:
tkapp不是你想的那样drawLine而不是drawRectangle,drawRectangle,但没有https://stackoverflow.com/questions/20939038
复制相似问题