AttributeError:“容器”对象没有属性“manager”

AttributeError: 'Container' object has no attribute 'manager'

提问人:Альберт Гайсин 提问时间:11/15/2023 更新时间:11/15/2023 访问量:30

问:

我的代码: МОЙ КОД:

from kivymd.app import MDApp
from kivy.uix.button import Button
from kivymd.uix.gridlayout import MDGridLayout
from kivymd.theming import ThemeManager
from kivy.core.window import Window
from kivy.config import Config
from kivy.uix.screenmanager import ScreenManager
from kivy.uix.screenmanager import Screen
from kivy.lang import Builder

Config.set('kivy', 'keyboard_mode', 'systemanddock')
Window.size = (480, 853)

class MainWindow(Screen):
    pass

class SecondWindow(Screen):
    pass

class WindowManager(ScreenManager):
    pass

class Container(MDGridLayout):
    def scit(self):
        try:
            znach = str(self.text_input.text)
        except:
            znach = 'ничего не введено'

class MyApp(MDApp):
    theme_cls = ThemeManager()
    title = 'Пока что так'

        def build(self):
            self.theme_cls.theme_style = 'Light'
            return Container()

MyApp().run()

我的kv.文件: МОЙ kv.файл:

WindowManager:
MainWindow:
SecondWindow:

<MainWindow>:
    name: 'main'
<ItemLabel@MDLabel>:
    font_size: '35sp'
    valign:'middle'
    text_size: self.size
<Container>:
    rows: 30
    padding: [30, 20, 30, 10]
    text_input: text_input

    MDTextField:
        id: text_input
        size_hint: 4, 2.4
        multiline: True
        font_size: '45sp'
        input_type: 'text'
        hint_text: 'Введите продукты здесь'

    FloatLayout:
        MDRaisedButton:
            size_hint: 0.7, 0.6
            pos_hint: {'center_x':0.5,'y': 0.2}
            text: 'Найти блюда'
            font_size: '25sp'

            on_release:

                root.scit()
                app.root.current = "second" if text_input.text != "None" else "main"
                root.manager.transition.direction = "left"

<SecondWindow>:
    name: "second"

    Button:
        text: "Go Back"
        on_release:
            app.root.current = "main"
            root.manager.transition.direction = "right"

当我按下按钮时,出现错误: Когда я нажимаю на кнопку появляется ошибка: AttributeError:“容器”对象没有属性“manager” 如果我有错误,请帮助我解决代码中的错误 Пожалуйста помогите мне с ошибками в коде если они есть

python kivy 运行时错误 kivymd

评论

1赞 Chris 11/15/2023
请将此问题完全翻译成英文,或将其删除并完全以俄语发布在Stack Overflow на русском

答:

0赞 John Anderson 11/15/2023 #1

在您的 kv 规则中,尝试更改:<Container>

root.manager.transition.direction = "left"

自:

app.root.transition.direction = "left"

在 中的规则中,该术语是指规则的根对象。在本例中,该根对象是实例,它实际上没有属性。kvrootContainermanager

评论

0赞 Альберт Гайсин 11/15/2023
现在出现另一个错误:AttributeError: 'Container' object has no attribute 'transition'
0赞 John Anderson 11/15/2023
您的方法返回一个实例作为 的根,因此 your 没有 和 没有 。我建议你首先从你的方法中删除。MyApp.build()ContainerAppAppScreenManagerScreensreturn Container()build()