Kivy 简明教程
Kivy - Effects
Kivy 库提供“kivy.effects”子包,用于在 Kivy 应用程序中使用 ScrollView 小部件时控制滚动效果。Effect 类可以执行诸如反弹、改变不透明度或防止滚动超出正常边界等操作。
有三个 Effect 类-
-
ScrollEffect - 用于实现效果的基本类。它只计算滚动和卷动。此类在 kivy.effects.scroll 模块中定义。
-
DampedScrollEffect - 使用滚动信息允许用户拖动超预期。一旦用户停止拖动,位置就会恢复到其中一个边界。此类的定义在 kivy.effects.dampedscroll 模块中。
-
OpacityScrollEffect - 使用滚动信息来降低滚动视图小部件的不透明度。当用户停止拖动时,不透明度会被设回为 1。类定义在 kivy.effects.opacityscroll 模块中。
这些类使用 KineticEffect 作为基本类,从移动中计算速度。
要在 ScrollView 的滚动行为中应用这些类中的任何一个的效果,请将其中一个类设置为 ScrollView 小部件的 effect_cls 属性的值。
scr = ScrollView(size=Window.size)
scr.eefect_cls=ScrollEffect
Example
以下“kv”语言脚本构建了一个 ScrollView,其中添加了一个包含一百个按钮的 GridLayout。“effect_cls”属性被设为 ScrollEffect 类。
#:import ScrollEffect kivy.effects.scroll.ScrollEffect
#:import Button kivy.uix.button.Button
<RootWidget>
effect_cls: ScrollEffect
GridLayout:
size_hint_y: None
height: self.minimum_height
cols: 1
on_parent:
for i in range(100):
self.add_widget(Button(text=str(i), size_hint_y=None))
上面的“kv”代码使用了一个名为 RootWidget 的类规则。以下 Python 代码中的 App 类的 build() 方法返回一个 RootWidget 类对象。
from kivy.uix.gridlayout import GridLayout
from kivy.uix.button import Button
from kivy.uix.scrollview import ScrollView
from kivy.effects.dampedscroll import DampedScrollEffect
from kivy.core.window import Window
from kivy.app import App
from kivy.core.window import Window
Window.size = (720,350)
class RootWidget(ScrollView):
pass
class scrollableapp(App):
def build(self):
return RootWidget()
scrollableapp().run()