Как сделать круглые края в MDCard KivyMD - PullRequest
0 голосов
/ 27 апреля 2020

Я делаю приложение в kivy, используя kivyMD, но я хочу вставить MDcard, дело в том, что я хочу, чтобы MDCard выглядела так: enter image description here

Но это выглядит как это:

enter image description here

Я знаю, что это может быть с border_radius, но я не знаю, как это сделать, вот мой код:

PY:

import kivy
from kivymd.app import MDApp
from kivymd.uix.card import MDCard

class Home(MDCard):
    pass

class Manage(MDApp):
    title = 'QUICKP'
    def build(self):
        return Home()


if __name__ == '__main__':
    Manage().run()

КВ:

<Home>

    MDCard:
        size_hint: None, None
        size: "280dp", "180dp"
        pos_hint: {"center_x": .5, "center_y": .5}

1 Ответ

0 голосов
/ 29 апреля 2020

У меня была такая же проблема, и для 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}

А вот часть из .py файла:

class Plan(RectangularElevationBehavior, RectangularRippleBehavior, FloatLayout):
    ripple_scale = 1.4
    text = StringProperty()
    text_label = StringProperty()

Итак, он создает MyCard (класс FloatLayout) с Canvas в это, которое наследуется от FloatLayout, RippleBehaviour и ElevationBehaviour. И затем вы можете добавить к этому FloatLayout в нем, чтобы управлять его содержимым. Но если это выглядит странно из-за позиции, попробуйте поиграть с pos_hint-s.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...