[更换幻灯片时轮播上的基辅事件

问题描述 投票:3回答:2

我不知道要解决我的问题。

我已经使用Carousel Widget进行了应用。在此轮播中,我有4张幻灯片。welcomeSlide-> DVDSlide-> DVDPretSlide-> CategorySlide我为每张幻灯片都上了一堂课。

我使用ListAdpter显示从Sqlite3数据库中提取的数据。

我的问题是关于列表的刷新,当我在DVDSlide中修改DVD(将名称添加到美化)时,当我滑动到DVDPret时,由于列表未刷新,所以不会出现DVD。

就像轮播的文档一样,在更换幻灯片时我找不到该事件。如果存在用于获取当前幻灯片索引的事件,那将是最好的。

你有什么主意吗?

谢谢,

python carousel kivy
2个回答
5
投票

您可以观察index属性:

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()

或者您可以观察current_slide属性:

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()

0
投票

与此有关。如果在python中创建的类,on_index函数将不起作用。任何的想法?我被卡住了:/

class QScreen5(Screen):
def __init__(self, **kwargs):
    super().__init__(**kwargs)

    self.carousel = Carousel(id="slider", size_hint=(1, .95), pos_hint={"x": 0, "y": 0}, on_index = self.kontrol)
© www.soinside.com 2019 - 2024. All rights reserved.