首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >AttributeError: tkapp对象没有属性“drawRectangle”

AttributeError: tkapp对象没有属性“drawRectangle”
EN

Stack Overflow用户
提问于 2014-01-05 20:54:25
回答 1查看 2.2K关注 0票数 0

我一直试图让我的Tkinter包装(专门用来制作一个游戏)工作,但是当它试图绘制一个矩形时,它总是会抛出一个错误。回溯:

Traceback (most recent call last): File "C:\Users\William\Dropbox\IT\Thor\test.py", line 7, in <module>

代码语言:javascript
运行
复制
 `aRectangle = thorElements.GameElement(pling,rectangleTup=(True,295,195,305,205,"blue"))`

File "C:\Users\William\Dropbox\IT\Thor\thorElements.py", line 79, in __init__

代码语言:javascript
运行
复制
 `self.rectangle = self.area.drawRectangle(self)`

File "C:\Python33\lib\tkinter\__init__.py", line 1867, in __getattr__

代码语言:javascript
运行
复制
 `return getattr(self.tk, attr)`

AttributeError: 'tkapp' object has no attribute 'drawRectangle'

代码中与问题相关的部分,

代码语言:javascript
运行
复制
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)

下面是将矩形绘制到画布上的实际方法(在管理画布小部件的类中),在同一个文件的前面:

代码语言:javascript
运行
复制
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")

非常感谢所有的输入。

EN

回答 1

Stack Overflow用户

发布于 2014-01-05 23:37:56

错误消息的含义是不言自明。当它说AttributeError: 'tkapp' object has no attribute 'drawRectangle'时,这意味着您正在尝试执行tkapp.drawRectangletkapp.drawRectangle(...),但是tkapp没有一个名为drawRectangle的属性或方法。

由于您的代码没有显示您在何处创建tkapp、如何创建它或在何处调用drawRectangle,因此我们不可能知道问题的根源是什么。它很可能是以下之一:

  1. tkapp不是你想的那样
  2. 您有一个错误,并且应该调用drawLine而不是drawRectangle
  3. 您打算实现drawRectangle,但没有
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20939038

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档