我是新的基维,但我有与Python和Tkinter的体面经验。我试图以编程方式控制kivy中的旋转木马。从本质上讲,我有一个外部Python程序,我想用它来自动切换轮播中的图像。打一个比方,我有一些代码在另一个文件:以编程方式控制基维的旋转木马
import time
while True:
time.sleep(1)
#do something to control the carousel
,然后我有我的kivy应用:
import kivy
from kivy.app import App
from kivy.uix.carousel import Carousel
from kivy.uix.image import AsyncImage
class CarouselApp(App):
self.srcs = ["https://stackoverflow.com/a/bunch.png", "/of/paths.jpg", "/to/images.png."]
def build(self):
self.carousel = Carousel(direction="right")
for i in range(0, len(self.srcs)):
src = self.srcs[i]
image = AsyncImage(source=src, allow_stretch=True)
self.carousel.add_widget(image)
return self.carousel
if __name__ == "__main__":
CarouselApp().run()
我希望能够控制该滑块显示在转盘使用最上面的代码,但我不知道如何去做这件事,因为我不能执行任何事情后App.run()
我调查了基维的Clock
模块,但我不知道这对我来说会工作,因为我想在满足某些条件而不是按时间切换幻灯片时。我给出的时间例子只是我思路的一个例子。
任何帮助将不胜感激!
你想为旋转木马的每个元素添加一个源? – lmiguelvargasf
我不完全确定你的意思。技术上,图像文件的来源在旋转木马被初始化之前都是已知的。我想要做的是在carouselapp创建完成后,在上面的代码中满足外部条件后,我想在转盘中切换幻灯片。我基本上想运行'Carousel.load_next()',但我想从传送带应用程序之外完成。 – Taira
我提供了一个答案,我希望这可以帮助。最后,您必须在'on_start'方法中安排一个函数,然后控制该函数的传送带。 – lmiguelvargasf