Настроить классы Dynami c в kivy - PullRequest
0 голосов
/ 05 августа 2020

Я продолжаю получать ошибки при попытке запустить свой код. Я не чувствую, что действительно понимаю, как работают классы динамического c.

В настоящее время я получаю сообщение об ошибке «Недопустимое имя класса»

<pagesButton@MDRectangleFlatButton>
    canvas:
        Color:
            rgba: 0, 0, 0, 1
        Line:
            width: 4
            ellipse: (self.x, self.y, 120, 120)
    Image:
        size_hint: None, None
        size: 60, 60
        keep_ratio: False
        allow_stretch: True




NavigationLayout:

    ScreenManager:
        id: screen_manager

        Screen:
            name: "screen1"

            GridLayout:
                cols: 1
                rows: 6

                canvas.before:
                    Rectangle:
                        size: self.size
                        pos: self.pos
                        source: 'images/MainGradient.png'



                MDToolbar:
                    id: FSZ_toolbar
                    left_action_items: [['menu', lambda x: nav_drawer.set_state()]]
                    #icon_color: 0,0,0,1
                    theme_text_color: 'Custom'
                    md_bg_color: 1,1,1,1
                    elevation: 0

                    BoxLayout:
                        size_hint_x: None
                        width: 1000

                        Image:
                            source: 'images/Logo1_textHeader.png'
                            size_hint_x: None
                            width: 500
                            allow_stretch: True
                            keep_ratio: True
                            pos_hint_x: {'left': .5}



                GridLayout:  #Different pages buttons
                    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>:
                         Image:
                             source: "Nav_icons/Radio.png"
                                

Как мне настроить новый динамический c класс правильно? Я хочу создать несколько новых классов. Должен ли я писать все эти классы в начале моего файла kivy или я могу поместить их где угодно в моем файле kv?

Нужно ли мне также писать код в моем файле py, чтобы он работал? или можно заставить все работать только из моего kivy файла? Если мне нужен код в моем py-файле, что мне написать?

1 Ответ

0 голосов
/ 06 августа 2020

Убедитесь, что имена ваших классов начинаются с заглавной буквы. Этот факт используется kv для отличия виджетов guish от свойств.

Также ваш синтаксис неверен, при использовании pagesButton в другом правиле вы должны опустить <> вокруг него.

В настоящее время я получаю сообщение об ошибке «Недопустимое имя класса»

Это объясняется приведенными выше деталями, но в общем случае не следует просто записывать небольшую часть ошибка, всегда публикуйте полную информацию. Обычно это дает больше контекста, который будет полезен любому, кто пытается вам помочь.

...