Pygtk:名称未定义

时间:2010-10-30 21:05:31

标签: python pygtk

我正在尝试一些pygtk教程并遇到了一个看似明显的新手错误,但是对于我的生活无法弄清楚这里发生了什么。

错误:

Traceback (most recent call last):
  File "main.py", line 8, in 
    class Base:
  File "main.py", line 61, in Base
    cv.set_line_width(9)
NameError: name 'cv' is not defined

代码:

def expose(self, widget, data=None):  
    cv = widget.window.cairo_create()      
    cv.set_line_width(9)
    cv.set_source_rgb(0.7, 0.2, 0.0)

    w = self.window.allocation.width
    h = self.window.allocation.height

    cv.translate(w/2, h/2)
    cv.arc(0, 0, 50, 0, 2*math.pi)
    cv.stroke_preserve()

    cv.set_source_rgb(0.3, 0.4, 0.6)
    cv.fill()

以下是完整来源:http://gist.github.com/655728

3 个答案:

答案 0 :(得分:1)

你在github的代码是:

def expose(self, widget, data=None):        
    selcv = widget.window.cairo_create()

    cv.set_line_width(9)
    cv.set_source_rgb(0.7, 0.2, 0.0)

...这肯定会解释为什么在尝试访问时未定义cv。

答案 1 :(得分:0)

通过切换到4空格缩进而不是制表符并重新缩进整个文件来解决这个问题。

奇怪的事情发生了,gedit显示了一切很好的缩进,而Netbeans显示了缩进的罪魁祸首

答案 2 :(得分:0)

文件中有多个标签和空格。