我是新的基維,但我有與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