我有一个Python 2.7 / PyGTK 2.24项目。我正在Linux Ubuntu 11上构建。
我正在使用以下代码为图像在屏幕上的移动设置动画。
def move_fish():
global fishmove, flipped
if fishmove < 440 and flipped == False:
fishmove = fishmove + 10
fixed_hab.move(fish1, fishmove, 50)
return True
elif fishmove == 440 and flipped == False:
pixbufanim = gtk.gdk.PixbufAnimation("IMG/IMG-FISH-L.gif")
fish1.set_from_animation(pixbufanim)
flipped = True
fishmove = fishmove - 10
fixed_hab.move(fish1, fishmove, 50)
return True
elif fishmove > 0 and flipped == True:
fishmove = fishmove - 10
fixed_hab.move(fish1, fishmove, 50)
return True
elif fishmove == 0 and flipped == True:
pixbufanim = gtk.gdk.PixbufAnimation("IMG/IMG-FISH-R.gif")
fish1.set_from_animation(pixbufanim)
flipped = False
return True
gobject.timeout_add(100, move_fish)
代码运行正常,运行时没有编译错误或错误。但是,关闭窗口后,我多次收到以下错误。 (请注意,fixed_hab(gtk.Fixed)和fish1(gtk.Image)对象与函数声明“def move_fish()”的范围相同:“
Word4Word-9-16.py:1655:GtkWarning:gtk_fixed_move_internal:断言 `widget-&gt; parent == GTK_WIDGET(已修复)'失败fixed_hab.move(fish1, fishmove,50)
这是严重的吗?我可以修理吗?这会给最终用户带来困难吗?
提前致谢!
答案 0 :(得分:0)
很可能你的tiemout_add会在应用程序被销毁时触发。 您的选择是:
访问不再存在的窗口小部件可能会无声地失败,但是当您的应用程序逻辑发生更改时,它甚至可能会出现错误的错误。