AttributeError: объект 'tkapp' не имеет атрибута 'drawRectangle'
Я пытался заставить свою оболочку 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)
А вот фактический метод, который рисует прямоугольник на холсте (в классе, который управляет виджетом Canvas), ранее в том же файле:
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")
Весь вклад с благодарностью.
1 ответ
Сообщение об ошибке должно быть самоочевидным. Когда это говорит AttributeError: 'tkapp' object has no attribute 'drawRectangle'
, это означает, что вы пытаетесь сделать tkapp.drawRectangle
или же tkapp.drawRectangle(...)
, но tkapp
не имеет атрибута или метода с именем drawRectangle
,
Поскольку ваш код не показывает, где вы создаете tkapp
или как вы его создали, или куда вы звоните drawRectangle
, мы не можем знать, в чем корень проблемы. Скорее всего, это одно из следующих:
tkapp
не то, что вы думаете, это- у вас есть опечатка, и хотел позвонить
drawLine
скорее, чемdrawRectangle
, - вы намеревались реализовать
drawRectangle
но не сделал