我做了一个小小的Kivy应用程序作为界面。旋转木马似乎正在工作,但我想让旋转木马自己启动(这意味着不使用鼠标)。事实上,该应用程序将部署在一个没有任何鼠标或键盘的小机器人上,这就是为什么我需要旋转木马自己传递图像。
正如您在我的代码中看到的那样,旋转木马确实有效,但我无法弄清楚如何在不用鼠标单击的情况下启动它。
class Logo(App):
def build(self):
carousel = Carousel(direction='right')
for i in range(2):
src = "image.png"
image = Factory.AsyncImage(source=src, allow_stretch=True)
carousel.add_widget(image)
return carousel
if __name__ == '__main__':
Logo().run()
有什么想法吗?感谢。
答案 0 :(得分:2)
你想要一个事件来触发这个动作,我认为最简单的方法就是使用一个时钟。
from kivy.clock import Clock
然后在你的构建中,你可以安排以某个间隔递增轮播的位置,轮播对load_next
有一个方便的功能,但如果你这样做,它会卡在最后一帧上非常快,所以您可能希望将loop=True
传递给Carousel
实例。
from kivy.app import App
from kivy.factory import Factory
from kivy.uix.carousel import Carousel
from kivy.clock import Clock
class Logo(App):
def build(self):
carousel = Carousel(direction='right', loop=True)
for i in range(2):
image = Factory.Label(text=str(i))
carousel.add_widget(image)
Clock.schedule_interval(carousel.load_next, 1)
return carousel
if __name__ == '__main__':
Logo().run()
(我通过标签更改图像以更容易地看到差异)