Я хотел бы знать, как можно размыть изображение (например, RoundedRectangle ()), нарисованное на холсте с помощью
kivy для эффекта тени.
Я пытался использовать EffectWidget (), но он не работает с изображением, нарисованным на холсте.
Кто-то, кто знает, должен дать мне пример того, как это сделать, или альтернативу тому, как придать кнопкам эффекты тени. Любая помощь будет оценена, спасибо.
from kivy.app import App
from kivy.uix.floatlayout import FloatLayout
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.effectwidget import *
from kivy.graphics import *
from kivy.graphics.vertex_instructions import *
class bg(BoxLayout):
def __init__(self,back_color=[1,0,0,1],border_radius=[5],**kwargs):
super().__init__(**kwargs)
self.back_color = back_color
self.border_radius = border_radius
with self.canvas.before:
self.col = Color(rgba=self.back_color)
self.rect = RoundedRectangle(size=self.size,pos=self.pos,radius=self.border_radius)
class ShadowButton(BoxLayout):
def __init__(self,back_color=[0,0,0,1],border_radius=[5],**kwargs):
super().__init__(**kwargs)
self.back_color = back_color
self.border_radius = border_radius
btn = bg(size_hint=(None,None),size=(100,40),pos=(50,100))
self.w = EffectWidget()
self.w.add_widget(btn)
self.w.effects = [HorizontalBlurEffect(size=20.0),VerticalBlurEffect(size=20)]
class TestPage(FloatLayout):
def __init__(self,**kwargs):
super().__init__(**kwargs)
self.btn = ShadowButton(size_hint=(None,None),size=(100,40),pos= (50,100))
self.add_widget(self.btn)
class MyApp(App):
def build(self):
return TestPage()
if __name__ == '__main__':
MyApp().run()