我的 Py 文件:
from kivymd.app import MDApp
from kivymd.theming import ThemeManager
from kivy.app import App
from kivy.uix.video import Video
class MainApp(MDApp):
def on_start(self):
# Set colors
self.theme_cls = ThemeManager()
MainApp().run()
所以这是我的自定义小部件:
<PagesButton@MDRectangleFlatButton>
canvas:
Color:
rgba: 0, 0, 0, 1
Line:
width: 4
ellipse: (self.x, self.y, 120, 120)
BoxLayout:
size_hint: None, None
#pos_hint: {'center': .5, 'top': .5}
width: 70
height: 45
Image:
size_hint: None, None
size: 60, 60
keep_ratio: False
allow_stretch: True
这是我尝试使用的上述小部件的一个实例,
GridLayout:
cols: 10
rows: 1
size_hint_y: None
height: 150
spacing: 60
padding: 20, 60, 20, 0
MDRectangleFlatButton:
canvas:
Color:
rgba: 0, 0, 0, 1
Line:
width: 4
ellipse: (self.x, self.y, 120, 120)
BoxLayout:
size_hint: None, None
#pos_hint: {'center': .5, 'top': .5}
width: 30
height: 25
Image:
source: "Nav_icons/Events.png"
size_hint: None, None
size: 60, 60
keep_ratio: False
allow_stretch: True
#pos_hint: {'left': .5, 'top': 1.1}
PagesButton:
text: 'hey'
现在我理解它的方式......
如果我在我的代码中使用自定义动态类,它是否应该已经拥有我最初定义该类时编写的所有其他属性?
在当前示例中,当我编写 PagesButton 时,我只得到一个中间带有文本“嘿”的常规矩形按钮。我在 PagesButton@MDRectangleFlatButton 中写的所有其他内容都被完全忽略了。
我的意图是用所有属性定义定义一个广泛的视图类,然后一遍又一遍地使用这个类的实例,每次都进行轻微的调整,比如一个新的图像和新的来源,但广义类中的其他所有东西都会仍然出现。在这个例子中,每次我使用这个类时,我都应该得到一个描边的圆形按钮,里面有一个新的图像。我希望只有在我为每个实例的特定属性定义一个新规则时才会发生变化,否则,一切都应该在视觉上保持不变和一致。
这不是它应该如何工作的吗?还是我做错了什么?