【发布时间】:2019-01-11 13:34:04
【问题描述】:
我正在尝试使用 kivy.uix.behaviors 中的 touchripple.py 创建一个按钮。然而,我最终没有成功。任何人都可以使用 Kivy lang 展示一个带有按钮的触摸波纹的简单示例吗?提前致谢。 现在,只有涟漪效应还没有显示出来。请指教。谢谢。
在rippleexample2.py中:
from kivy.app import App
from kivy.uix.touchripple import TouchRippleBehavior
from kivy.uix.button import Button
from kivy.uix.screenmanager import ScreenManager, Screen
from kivy.lang import Builder
from kivy.properties import (StringProperty, NumericProperty, ObjectProperty,
ListProperty, DictProperty, BooleanProperty)
class RippleButton(TouchRippleBehavior, Button):
isRippled = BooleanProperty(False)
def __init__(self, **kwargs):
super(RippleButton, self).__init__(**kwargs)
def on_touch_down(self, touch):
collide_point = self.collide_point(touch.x, touch.y)
if collide_point and not self.isRippled:
self.isRippled = True
self.ripple_show(touch)
return super(RippleButton, self).on_touch_down(touch)
def on_touch_up(self, touch):
collide_point = self.collide_point(touch.x, touch.y)
if collide_point and self.isRippled:
self.isRippled = False
self.ripple_fade()
return super(RippleButton, self).on_touch_up(touch)
def doit(self, *args):
print('in doit')
class Login(Screen):
pass
class MainScreen(Screen):
pass
class ScreenManager(ScreenManager):
pass
MainScreen = Builder.load_file("rippleexample2.kv")
class SimpleKivy4(App):
def build(self):
return MainScreen
if __name__ == "__main__":
SimpleKivy4().run()
在rippleexample2.kv中:
ScreenManager:
Login:
MainScreen:
<Login>:
name:"login"
RippleButton:
text:'Login'
font_size: 24
on_release: app.root.current = "main"
<MainScreen>:
name: "main"
RippleButton:
text: 'back'
on_release: app.root.current = "login"
【问题讨论】:
-
欢迎来到 SO。你的问题到底是什么?什么“以失败告终”?提供有关您的问题的更多详细信息并展示一些工作证明,以便其他人可以更好地帮助您。
-
大家好,我仍然遇到连锁反应的问题。谁能帮忙。
标签: python-3.x kivy