Python 幻灯片更换时转盘上的Kivy事件
我不知道该怎么解决我的问题 我已经用Carousel小部件制作了一个应用程序。在这个旋转木马中,我有4张幻灯片。 欢迎幻灯片->DVD幻灯片->DVD幻灯片-->分类幻灯片 我已经为每张幻灯片上了课 我使用ListAdpter显示从Sqlite3数据库提取的数据 我的pblem是关于列表的刷新,当我在DVD幻灯片中修改DVD(将名称添加到pret)时,当我滑到DVD pret时,DVD不会出现,因为列表未刷新 就像旋转木马的文档一样,我找不到幻灯片更改时的事件。如果存在获取当前幻灯片索引的事件,这将是最好的 你知道吗Python 幻灯片更换时转盘上的Kivy事件,python,carousel,kivy,Python,Carousel,Kivy,我不知道该怎么解决我的问题 我已经用Carousel小部件制作了一个应用程序。在这个旋转木马中,我有4张幻灯片。 欢迎幻灯片->DVD幻灯片->DVD幻灯片-->分类幻灯片 我已经为每张幻灯片上了课 我使用ListAdpter显示从Sqlite3数据库提取的数据 我的pblem是关于列表的刷新,当我在DVD幻灯片中修改DVD(将名称添加到pret)时,当我滑到DVD pret时,DVD不会出现,因为列表未刷新 就像旋转木马的文档一样,我找不到幻灯片更改时的事件。如果存在获取当前幻灯片索引的事件,
谢谢,您可以观察
索引
属性:
from kivy.uix.carousel import Carousel
from kivy.uix.boxlayout import BoxLayout
from kivy.app import App
from kivy.lang import Builder
Builder.load_string('''
<Page>:
Label:
text: str(id(root))
<Carousel>
on_index: print("slide #{}".format(args[1]))
''')
class Page(BoxLayout):
pass
class TestApp(App):
def build(self):
root = Carousel()
for x in range(10):
root.add_widget(Page())
return root
if __name__ == '__main__':
TestApp().run()
from kivy.uix.carousel import Carousel
from kivy.uix.boxlayout import BoxLayout
from kivy.app import App
from kivy.lang import Builder
Builder.load_string('''
<Page>:
label_id: label_id
Label:
id: label_id
text: str(id(root))
<Carousel>
on_current_slide: print(args[1].label_id.text)
''')
class Page(BoxLayout):
pass
class TestApp(App):
def build(self):
root = Carousel()
for x in range(10):
root.add_widget(Page())
return root
if __name__ == '__main__':
TestApp().run()
如果您想要一个纯python解决方案而不是Kivy语言解决方案,您可以创建自己的carousel,它继承了Kivy carousel,如下所示
import kivy
from kivy.uix.carousel import Carousel
class MyCarousel(Carousel):
# This class is a carousel that runs script
# when a slide gets focus (except first load).
def on_index(self, *args):
print('the slide is', self.index)
# YOUR CODE GOES HERE
Carousel.on_index(self, *args)
索引上的
很棒。你在哪里找到的?我在文档中的任何地方都看不到它。@JohnBaber Lucero,index
是一个描述的属性,对于任何属性,您都可以在
方法上定义,以观察其更改。有关更多参考,请参阅。这就是Kivy properties如此有用的原因。我发现索引上的和当前幻灯片上的都不起作用。还有其他解决办法吗?