gpt4 book ai didi

python - 如何将两个不同的 gif 绑定(bind)到 kivy 中的切换按钮?

转载 作者:太空宇宙 更新时间:2023-11-03 14:27:57 24 4
gpt4 key购买 nike

我从这里的一位乐于助人的用户那里得到了这段代码,它几乎是完美的。

from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.lang import Builder

Builder.load_string("""
<ExampleApp>:
id: main
orientation: "vertical"
Button:
size_hint_x: None
size_hint_y: None
height: 300
width: self.height
center: self.parent.center
text: ""
on_press: gif.anim_delay = 0.09
on_press: gif._coreimage.anim_reset(True)

Image:
id: gif
source: 'power_on.gif'
center: self.parent.center
height: 300
width: self.height
allow_stretch: True
anim_delay: -1
anim_loop: 1


""")

class ExampleApp(App, BoxLayout):
def build(self):
return self


if __name__ == "__main__":
ExampleApp().run()

我需要它使用两个不同的 gif:打开时的 power_on gif 和关闭时的 power_off gif。所以我尝试将其更改为切换按钮并添加

on_press: gif.source="power_off.gif"

但这根本不起作用。它甚至从未播放过 power_on gif,因为它立即将 gif 的来源更改为 power_off

解决这个问题的正确方法是什么?

最佳答案

下面承认第一个gif是power_off.gif:

-考虑添加 StringProperty 导入,该属性将保留当前的 ​​gif 图像源

from kivy.properties import StringProperty

-添加一个方法来处理不同的更改:

class ExampleApp(App, BoxLayout):
power = StringProperty('power_off.gif')

def build(self):
return self

def change_state(self):
if self.power == 'power_on.gif':
self.power = 'power_off.gif'
else:
self.power = 'power_on.gif'

-然后将这些更改添加到您的 kv 中:

Builder.load_string("""
<ExampleApp>:
id: main
orientation: "vertical"
Button:
size_hint_x: None
size_hint_y: None
height: 300
width: self.height
center: self.parent.center
text: ""
on_press: gif.anim_delay = 0.09
on_press: gif._coreimage.anim_reset(True); root.change_state()

Image:
id: gif
source: root.power
center: self.parent.center
height: 300
width: self.height
allow_stretch: True
anim_delay: -1
anim_loop: 1


""")

关于python - 如何将两个不同的 gif 绑定(bind)到 kivy 中的切换按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47486533/

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