提问人:Альберт Гайсин 提问时间:11/15/2023 更新时间:11/15/2023 访问量:30
AttributeError:“容器”对象没有属性“manager”
AttributeError: 'Container' object has no attribute 'manager'
问:
我的代码: МОЙ КОД:
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” 如果我有错误,请帮助我解决代码中的错误 Пожалуйста помогите мне с ошибками в коде если они есть
答:
0赞
John Anderson
11/15/2023
#1
在您的 kv 规则中,尝试更改:<Container>
root.manager.transition.direction = "left"
自:
app.root.transition.direction = "left"
在 中的规则中,该术语是指规则的根对象。在本例中,该根对象是实例,它实际上没有属性。kv
root
Container
manager
评论
0赞
Альберт Гайсин
11/15/2023
现在出现另一个错误:AttributeError: 'Container' object has no attribute 'transition'
0赞
John Anderson
11/15/2023
您的方法返回一个实例作为 的根,因此 your 没有 和 没有 。我建议你首先从你的方法中删除。MyApp.build()
Container
App
App
ScreenManager
Screens
return Container()
build()
评论