Kivy 教程

Kivy - 主页

Kivy 基础知识

Kivy - 入门 Kivy - 安装 Kivy - 架构 Kivy - 文件语法 Kivy - 应用程序 Kivy - Hello World Kivy - 应用生命周期 Kivy - 事件 Kivy - 属性 Kivy - 输入 Kivy - 行为

Kivy 按钮

Kivy - 按钮 Kivy - 按钮事件 Kivy - 按钮颜色 Kivy - 按钮大小 Kivy - 按钮位置 Kivy - 圆形按钮 Kivy - 禁用按钮 Kivy - 图片按钮

Kivy 小部件

Kivy -小部件 Kivy - 标签 Kivy - 文本输入 Kivy - 画布 Kivy - 线条 Kivy - 复选框 Kivy - 下拉列表 Kivy - 窗口 Kivy - ScrollView Kivy - 轮播 Kivy - 滑块 Kivy - 图像 Kivy - 弹出窗口 Kivy - 开关 Kivy - 旋转器 Kivy - 拆分器 Kivy - 进度条 Kivy - 气泡 Kivy - 选项卡式面板 Kivy - 散点图 Kivy - 手风琴 Kivy - 文件选择器 Kivy - 颜色选择器 Kivy - 代码输入 Kivy - 模态视图 Kivy - 切换按钮 Kivy - 相机 Kivy - 树形视图 Kivy - reStructuredText Kivy - 操作栏 Kivy - 视频播放器 Kivy - 模板视图 Kivy - VKeyboard Kivy - 触摸涟漪 Kivy - 音频 Kivy - 视频 Kivy - 拼写 Kivy - 效果 Kivy - 输入记录器 Kivy - OpenGL Kivy - 文本 Kivy - 文本标记 Kivy - 设置

Kivy 布局

Kivy - 布局 Kivy - 浮动布局 Kivy - 网格布局 Kivy - 框布局 Kivy - 堆栈布局 Kivy - 锚点布局 Kivy - 相对布局 Kivy - 页面布局 Kivy - 循环布局 Kivy - 布局中的布局

Kivy 高级概念

Kivy - 配置对象 Kivy - Atlas Kivy - 数据加载器 Kivy - 缓存管理器 Kivy - 控制台 Kivy - 动画 Kivy - MultiStroke Kivy - 时钟 Kivy - SVG Kivy - UrlRequest Kivy - 剪贴板 Kivy - 工厂 Kivy - 手势 Kivy - 语言 Kivy - 图形 Kivy - 绘图 Kivy - 打包 Kivy - Garden Kivy - 存储 Kivy - 矢量 Kivy - Utils Kivy - Inspector 工具 Kivy - 工具 Kivy - 日志 Kivy - 帧缓冲区

Kivy 应用程序和项目

Kivy - 绘图应用程序 Kivy - 计算器应用程序 Kivy - 秒表应用程序 Kivy - 相机处理 Kivy - 图像查看器 Kivy - 贝塞尔曲线 Kivy - 画布应力 Kivy - 圆形绘制 Kivy - 小部件动画 Kivy - 杂项

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

输出

这是一个简单的应用程序,通过在设备显示屏上滑动即可浏览一系列幻灯片。方向参数设置为右,这意味着后续幻灯片朝右。

Kivy 轮播

使用"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

输出

幻灯片一张一张地堆叠在一起。

Kivy 轮播按钮