【问题标题】:AttributeError: 'tkapp' object has no attribute 'drawRectangle'AttributeError:“tkapp”对象没有属性“drawRectangle”
【发布时间】:2014-01-05 20:54:25
【问题描述】:

我一直在尝试让我的 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")

非常感谢所有输入。

【问题讨论】:

  • 你能发布错误堆栈跟踪吗?

标签: python oop tkinter attributeerror


【解决方案1】:

错误消息是不言自明的。当它显示AttributeError: 'tkapp' object has no attribute 'drawRectangle' 时,表示您正在尝试执行tkapp.drawRectangle 或tkapp.drawRectangle(...),但tkapp 没有名为drawRectangle 的属性或方法。

由于您的代码没有显示您创建tkapp 的位置或创建它的方式,或者您调用drawRectangle 的位置,因此我们不可能知道问题的根源是什么。很可能是以下情况之一:

  1. tkapp 不是你想的那样
  2. 你打错字了,应该打电话给drawLine而不是drawRectangle,
  3. 您打算实现drawRectangle,但没有实现

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-12-01
    • 2021-04-19
    • 2021-11-22
    • 1970-01-01
    • 1970-01-01
    • 2018-08-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多