2010-10-30 48 views
0

我正在尝试几个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

回答

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时未定义cv。

+0

对不起,这是一个拼写错误。感谢您指出 – Orb 2010-10-30 21:16:04

0

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

一些奇怪的事情,gedit中显示了很好的一切,而锯齿状的Netbeans显示缩进罪魁祸首

+0

欢迎来到SO。很高兴为你解决问题。顺便说一下,您有权打出自己的问题,并表示您已接受答案。这让人们知道他们不需要担心提供进一步的思考。 – 2010-10-30 21:36:29