我不知道要解决我的问题。
我已经使用Carousel Widget进行了应用。在此轮播中,我有4张幻灯片。welcomeSlide-> DVDSlide-> DVDPretSlide-> CategorySlide我为每张幻灯片都上了一堂课。
我使用ListAdpter显示从Sqlite3数据库中提取的数据。
我的问题是关于列表的刷新,当我在DVDSlide中修改DVD(将名称添加到美化)时,当我滑动到DVDPret时,由于列表未刷新,所以不会出现DVD。
就像轮播的文档一样,在更换幻灯片时我找不到该事件。如果存在用于获取当前幻灯片索引的事件,那将是最好的。
你有什么主意吗?
谢谢,
您可以观察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()
与此有关。如果在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)