Pygtk: 名称未定义

0 投票
3 回答
564 浏览
提问于 2025-04-16 06:20

我正在尝试一些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

这个问题是通过把缩进方式从制表符(Tab)改成4个空格来解决的,然后重新调整了整个文件的缩进。

发生了一些奇怪的事情,gedit这个编辑器显示的缩进都很整齐,而Netbeans却显示了缩进出错的地方。

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时,它没有被定义。

0

你的文件里混合了制表符和空格。

撰写回答