繁体   English   中英

如何在Kivy制作旋转木马?

[英]How to make a carousel in Kivy?

我做了一个小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()

有任何想法吗 ? 谢谢。

你想要一个事件来触发运动,我认为最简单的方法就是使用一个时钟。

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

(我通过标签更改图像以更容易地看到差异)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM