gpt4 book ai didi

python - 使用 Kivy 删除小部件

转载 作者:行者123 更新时间:2023-12-01 09:29:55 25 4
gpt4 key购买 nike

我正在尝试在动画完成后删除 Image 小部件。到目前为止,我已经成功地为小部件设置了动画,然后在动画结束后调用 animation_complete 方法。不幸的是,该小部件并未被删除。

我做错了什么?

class ShootButton(Widget):
def bullet_fly(self):
def animation_complete(animation, widget):
print "removing animation"
self.remove_widget(widget=bullet1)


with self.canvas:
bullet1 = Image(source='bullet.png', pos = (100,200))
animation1 = Animation(pos=(200, 300))
animation1.start(bullet1)
animation1.bind(on_complete=animation_complete)

最佳答案

您不必使用 Canvas 来添加动画,而是直接使用 add_widget() 添加小部件,然后使用 remove_widget() 将其删除。在您的初始情况下,bullet1 不是ShootButton 的子级。

from kivy.app import App
from kivy.core.window import Window
from kivy.uix.image import Image
from kivy.uix.widget import Widget
from kivy.animation import Animation


Window.size = (360, 640)

class ShootButton(Widget):
def bullet_fly(self):
def animation_complete(animation, widget):
self.remove_widget(widget)
bullet1 = Image(source='bullet.png', pos = (100,200))
self.add_widget(bullet1)
animation1 = Animation(pos=(200, 300))
animation1.start(bullet1)
animation1.bind(on_complete=animation_complete)


class MyApp(App):
def build(self):
button = ShootButton()
button.bullet_fly()
return button


if __name__ == '__main__':
MyApp().run()

关于python - 使用 Kivy 删除小部件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50052530/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com