Kivy - 轮播
轮播是一种循环播放一系列内容的幻灯片。Kivy 框架包含一个轮播小部件,可让您轻松创建可浏览的幻灯片,特别适用于智能手机等触摸屏设备。轮播中的页面可以水平或垂直移动。
轮播类在"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 − 指定幻灯片排序的方向。这对应于用户从一张幻灯片滑动到下一张幻灯片的方向。它可以是右、左、上或下。
index − 根据索引获取/设置当前幻灯片。index 默认为 0(第一项)。
load_next(mode='next') − 动画到下一张幻灯片。
load_previous() −动画到上一张幻灯片。
load_slide(slide) − 动画到作为参数传递的幻灯片。
loop − 允许轮播无限循环。如果为 True,当用户尝试滑动到最后一页以外时,它将返回到第一页。如果为 False,它将保留在最后一页。
next_slide − 轮播中的下一张幻灯片。如果当前幻灯片是轮播中的最后一张幻灯片,则为 None。
previous_slide − 轮播中的上一张幻灯片。如果当前幻灯片是轮播中的第一张幻灯片,则为 None。
scroll_distance −滚动 Carousel 前要移动的距离(以像素为单位)。默认距离 id 为 20dp。
scroll_timeout − 允许触发 scroll_distance 的超时时间,以毫秒为单位。默认为 200(毫秒)
slides − Carousel 内的幻灯片列表。
示例
作为 Kivy 中 Carousel 的一个示例,请查看以下代码。Carousel 对象用作应用程序的根小部件,我们添加一个标签、一个按钮和一个图像作为其幻灯片。
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()
输出
这是一个简单的应用程序,通过在设备显示屏上滑动即可浏览一系列幻灯片。方向参数设置为右,这意味着后续幻灯片朝右。
使用"kv"语言组装轮播
让我们使用"kv"语言脚本组装轮播。这次,方向设置为顶部,这意味着您必须向上滑动屏幕才能看到下一个显示。
示例
Carousel: direction:'top' Button: text:'Button 1' font_size:32 Image: source:"kivy-logo.png" fit_mode:"contain" Button: text:"Button 2" font_size:32
输出
幻灯片一张一张地堆叠在一起。