объект не имеет атрибутов (кивы) - PullRequest
0 голосов
/ 04 мая 2020

В настоящее время я работаю над приложением для психического здоровья, и у меня возникла проблема в моем коде. В одном из моих классов под названием «Контроллер» у меня есть виджет-слайдер и четыре кнопки, предназначенные для перехода на другие страницы. Тем не менее, когда я нажимаю на одну, я сталкиваюсь с этой ошибкой

File "kivy\weakproxy.pyx", line 32, in kivy.weakproxy.WeakProxy.__getattr__
AttributeError: 'Controller' object has no attribute 'Screen_One'

Это сбивает с толку меня, потому что из кодирования в моем классе, который теперь покажет вам:

class Controller(Screen):
def __init__(self):
    super(Controller, self).__init__()

def new_thickness(self, *args):
    self.lbl.text = str(int(args[1]))
    self.lbl.font_size = int(args[1]) * 6 + 10

def screen_one(self)
    self.reset() 
    sm.current = "Screen_One"

В На первый взгляд, все выглядит хорошо, и я проверял, и я не могу найти проблему с этим. Поэтому я подумал, что это может быть класс для моего Screen_One, который я сейчас покажу вам:

class Screen_One(Screen):
    text = ObjectProperty(None)

Но, как вы можете видеть, не так много, чтобы представить, так как все это сделано на моем файле kivy или kv и даже это, кажется, будет хорошо, как я представлю вам сейчас:

Эта кнопка предназначена для перехода на нужную мне страницу, чтобы go

Button:
    pos_hint: {"x": 0.0, "y": 11.5}
    text: 'Diary'
    background_color: 0, 0, 0, 1
    on_release:
        app.root.current = "Screen_One"
        root.manager.transition.direction = "right"
        root.Screen_One()

И код для самой страницы:

<Screen_One>:
name: 'screen_one'
text: text

FloatLayout

    Label:
        text: "You can express how you feel below :)"
        size_hint: 0.8, 0.2
        pos_hint: {"x":0.1, "top":1}
        font_size: (root.width**2 + root.height**2) / 14**4

    TextInput:
        id: text
        font_size: (root.width**2 + root.height**2) / 15**4
        multiline: False
        pos_hint: {"x": 0.5 , "top":0.8}
        size_hint: 0.4, 0.12

Эти проекты нужны для моей оценки, которая скоро должна быть, так может кто-нибудь, пожалуйста, помогите мне?

Спасибо :)

1 Ответ

0 голосов
/ 04 мая 2020

Измените sm.current = Screen_One на sm.current = "screen_one". Вам нужно обратиться к названию экрана, а не к имени класса, который вы ему дали

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