Python 如何在MDCard KivyMD中制作圆边

Python 如何在MDCard KivyMD中制作圆边,python,kivy,Python,Kivy,我正在kivy中使用kivyMD开发一个应用程序,但我想插入一个MD卡,问题是我希望MD卡的外观如下所示: 但看起来是这样的: 我知道它可以是边界半径,但我不知道怎么做, 这是我的密码: PY: 千伏: 我也遇到了同样的问题,MDCards有一个border_radius属性,但它不起作用。但我用这个代码解决了这个问题: <MyCard>: orientation: 'vertical' size_hint: 0.1, 1 canvas.before:

我正在kivy中使用kivyMD开发一个应用程序,但我想插入一个MD卡,问题是我希望MD卡的外观如下所示:

但看起来是这样的:

我知道它可以是边界半径,但我不知道怎么做, 这是我的密码:

PY:

千伏:


我也遇到了同样的问题,MDCards有一个border_radius属性,但它不起作用。但我用这个代码解决了这个问题:

<MyCard>:
    orientation: 'vertical'
    size_hint: 0.1, 1
    canvas.before:
        Color:
            rgba: app.theme_cls.primary_color
        RoundedRectangle:
            radius: [10]
            size: self.size
            pos: self.pos
    FloatLayout:
        size: self.size
        pos: self.pos
        pos_hint: {"x": -0.1, "y": -0.6}

因此,它创建了一个包含画布的MyCardFloatLayout类,该类继承了FloatLayout、RippleBehaviour和ElevationBehavior。然后您可以添加到其中的FloatLayout以管理其内容。但是如果因为位置的原因看起来很奇怪,试着玩pos_hint-s

我也遇到了同样的问题,MDCards有一个border_radius属性,但它不起作用。但我用这个代码解决了这个问题:

<MyCard>:
    orientation: 'vertical'
    size_hint: 0.1, 1
    canvas.before:
        Color:
            rgba: app.theme_cls.primary_color
        RoundedRectangle:
            radius: [10]
            size: self.size
            pos: self.pos
    FloatLayout:
        size: self.size
        pos: self.pos
        pos_hint: {"x": -0.1, "y": -0.6}

因此,它创建了一个包含画布的MyCardFloatLayout类,该类继承了FloatLayout、RippleBehaviour和ElevationBehavior。然后您可以添加到其中的FloatLayout以管理其内容。但是如果因为位置的原因看起来很奇怪,试着玩pos_hint-s

人们建议使用canvas,这没问题,但它增加了编码,使编码变得非常复杂。只需转到Kivymd>uix>card.py行631,将默认值从3dp更改为例如20dp或任何您想要的值。然后返回您的代码并键入radius:[],然后将您想要的号码从20插入到0。
完成

人们建议使用canvas,这没问题,但它增加了编码,使编码变得非常复杂。只需转到Kivymd>uix>card.py行631,将默认值从3dp更改为例如20dp或任何您想要的值。然后返回您的代码并键入radius:[],然后将您想要的号码从20插入到0。
完成

您不需要修改card.py文件,也不需要使用canvas,只需将以下内容放入kivy代码中即可

border_radius: 20
radius: [15]

在border\u radius中,您设置了可以使用的边界限制,在radius中,您设置了MD卡的边界级别。

您不需要修改card.py文件,也不需要使用canvas,您只需在kivy代码中添加以下内容即可

border_radius: 20
radius: [15]

在border\u radius中,您设置了可以使用的边界限制,在radius中,您设置了MD卡的边界级别。

如@yaxter的回答所示,我可以确认在kivy 1.9中,border\u radius属性确实有效,如@yaxter的回答所示,我可以确认在kivy 1.9中,border\u radius属性确实有效工作
border_radius: 20
radius: [15]