0

我在 Python 2.7 和 PyGTK 2.24 中有一个项目。我正在使用以下代码在 gtk.Fixed 中创建 gtk.Image 的运动动画。

    def fishmove():
        global fishmove
        if fishmove < 640:
            fishmove = fishmove + 10
            fixed_hab.move(fish1, fishmove, 50)  

    gobject.timeout_add(1, fishmove)

然而,虽然程序没有抛出任何错误,但图像并没有移动。到底是怎么回事?

顺便说一句,fishmove 从 0 开始。

4

2 回答 2

2

注意变量的命名!如果你有一个全局整数fishmove和一个同名的方法,那两者几乎肯定会以某种意想不到的方式干扰!

尝试将方法重命名为move_fishor sth。

于 2011-09-18T08:28:22.703 回答
1

我解决了。我只需要在函数末尾添加“return True”行。这是固定代码。有用。

def fishmove():
   global fishmove
   if fishmove < 640:
        fishmove = fishmove + 10
        fixed_hab.move(fish1, fishmove, 50)  
        return True

gobject.timeout_add(1, fishmove)
于 2011-09-18T18:30:58.233 回答