59 lines
1.9 KiB
Python
59 lines
1.9 KiB
Python
|
# -*- coding: utf-8 -*-
|
||
|
from kivy.lang import Builder
|
||
|
from kivy.properties import BoundedNumericProperty, ReferenceListProperty, ListProperty,BooleanProperty
|
||
|
from kivy.uix.boxlayout import BoxLayout
|
||
|
from kivymd.elevationbehavior import ElevationBehavior
|
||
|
from kivymd.theming import ThemableBehavior
|
||
|
from kivy.metrics import dp
|
||
|
from kivy.uix.widget import Widget
|
||
|
|
||
|
Builder.load_string('''
|
||
|
<MDCard>
|
||
|
canvas:
|
||
|
Color:
|
||
|
rgba: self.background_color
|
||
|
RoundedRectangle:
|
||
|
size: self.size
|
||
|
pos: self.pos
|
||
|
radius: [self.border_radius]
|
||
|
Color:
|
||
|
rgba: self.theme_cls.divider_color
|
||
|
a: self.border_color_a
|
||
|
Line:
|
||
|
rounded_rectangle: (self.pos[0],self.pos[1],self.size[0],self.size[1],self.border_radius)
|
||
|
background_color: self.theme_cls.bg_light
|
||
|
|
||
|
<MDSeparator>
|
||
|
canvas:
|
||
|
Color:
|
||
|
rgba: self.theme_cls.divider_color
|
||
|
Rectangle:
|
||
|
size: self.size
|
||
|
pos: self.pos
|
||
|
''')
|
||
|
|
||
|
|
||
|
class MDSeparator(ThemableBehavior, BoxLayout):
|
||
|
""" A separator line """
|
||
|
def __init__(self, *args, **kwargs):
|
||
|
super(MDSeparator, self).__init__(*args, **kwargs)
|
||
|
self.on_orientation()
|
||
|
|
||
|
def on_orientation(self,*args):
|
||
|
self.size_hint = (1, None) if self.orientation == 'horizontal' else (None, 1)
|
||
|
if self.orientation == 'horizontal':
|
||
|
self.height = dp(1)
|
||
|
else:
|
||
|
self.width = dp(1)
|
||
|
|
||
|
|
||
|
class MDCard(ThemableBehavior, ElevationBehavior, BoxLayout):
|
||
|
r = BoundedNumericProperty(1., min=0., max=1.)
|
||
|
g = BoundedNumericProperty(1., min=0., max=1.)
|
||
|
b = BoundedNumericProperty(1., min=0., max=1.)
|
||
|
a = BoundedNumericProperty(0., min=0., max=1.)
|
||
|
|
||
|
border_radius = BoundedNumericProperty(dp(3),min=0)
|
||
|
border_color_a = BoundedNumericProperty(0, min=0., max=1.)
|
||
|
background_color = ReferenceListProperty(r, g, b, a)
|