Kivy 简明教程
Kivy - Carousel
走马灯是用于循环播放一系列内容的幻灯片放映。Kivy 框架包括一个 Carousel 窗口小部件,它允许你轻松创建可浏览的幻灯片放映,这对于诸如智能手机之类的触摸屏设备特别有用。走马灯中的页面可以在水平或垂直方向上移动。
Carousel 类定义在 “kivy.uix.carousel” 模块中。
from kivy.uix.carousel import Carousel
carousel = Carousel(**kwargs)
下面给出创建一个使用走马灯的简单幻灯片放映的 Python/Kivy 程序:
from kivy.app import App
from kivy.uix.carousel import Carousel
from kivy.uix.image import Image
class CarouselApp(App):
def build(self):
carousel = Carousel(direction='right')
img1=Image(source='1.png')
carousel.add_widget(img1)
img2=Image(source='2.png')
carousel.add_widget(img2)
img3=Image(source='3.png')
carousel.add_widget(img3)
return carousel
CarouselApp().run()
你也可以使用 “kv” 语言脚本构建走马灯。
Carousel:
direction: 'right'
Image:
source: '1.png'
Image:
source: '2.png'
Image:
source: '3.png'
Image:
source: '4.png'
Carousel 类定义了以下属性:
-
current_slide - 当前显示的幻灯片。current_slide 是一个 AliasProperty。
-
direction - 指定幻灯片的排序方向。它与用户从一个幻灯片切换到下一个幻灯片时滑动的方向相对应。它可以是 right、left、top 或 bottom。
-
index - 根据索引获取/设置当前幻灯片。index 默认值为 0(第一项)。
-
load_next(mode='next') - 动画播放到下一张幻灯片。
-
load_previous() - 动画播放到上一张幻灯片。
-
load_slide(slide) - 动画播放到作为参数传递的幻灯片。
-
loop - 允许走马灯无限循环。如果为 True,当用户尝试滑动到最后一页之外时,它将返回到第一页。如果为 False,它将停留在最后一页。
-
next_slide - 走马灯中的下一张幻灯片。如果当前幻灯片是走马灯中的最后一张幻灯片,则它为 None。
-
previous_slide - 走马灯中的上一张幻灯片。如果当前幻灯片是走马灯中的第一张幻灯片,则它为 None。
-
scroll_distance - 在以像素为单位滚动走马灯之前移动的距离。默认距离为 20dp。
-
scroll_timeout - 触发 scroll_distance 允许的超时,以毫秒为单位。默认为 200(毫秒)
-
slides − 轮播内幻灯片列表。
Example
以下是 Kivy 中轮播的一个示例代码。轮播对象用作应用程序的根小部件,我们将标签、按钮和图像添加为其幻灯片。
from kivy.app import App
from kivy.uix.button import Button
from kivy.uix.carousel import Carousel
from kivy.uix.image import Image
from kivy.core.window import Window
Window.size = (720,350)
class CarouselApp(App):
def build(self):
carousel = Carousel(direction='right')
carousel.add_widget(Button(text='Button 1', font_size=32))
src = "ganapati.png"
image = Image(source=src, fit_mode="contain")
carousel.add_widget(image)
carousel.add_widget(Button(text="Button 2", font_size=32))
return carousel
CarouselApp().run()