【发布时间】:2021-06-04 22:26:19
【问题描述】:
所以我的主应用程序类看起来像这样
class MainApp(MDApp):
def on_resize(self):
if self.app.manager.get_screen() == "table_screen":
if self.width>self.height:
self.manager.get_screen("table_screen").ids.table_image.source="table1.png"
self.manager.get_screen("table_screen").ids.left_panel.opacity=0
else:
self.ids.left_panel.size_hint_x=.5
self.ids.left_panel.opacity=1
def build(self):
Window.bind(size=self.on_resize())
return Main()
我想首先知道当前屏幕是“table_screen”,然后我需要从该屏幕获取 id,但是使用当前代码我得到一个错误
if self.root.manager.get_screen() == "table_screen":
AttributeError: 'NoneType' object has no attribute 'manager
那么有什么办法呢? 这是我的主要内容
class Main(MDBoxLayout):
pass
这是我在 kv 中的主要内容
<Main>:
orientation: "vertical"
id: main
ScreenManager:
id:SM
【问题讨论】:
-
您的
Main课程是什么?是ScreenManager吗? -
另外,请注意
Window.bind(size=self.on_resize())不正确。它应该是Window.bind(size=self.on_resize),没有额外的()。 -
添加了我的主课