App.get_running_app().root.my_method() - 'NoneType' 对象没有属性 'my_method()
App.get_running_app().root.my_method() - 'NoneType' object has no attribute 'my_method()
我尝试在按下按钮后调用 Screenmanager 上的函数。但是调用 (App.get_running_app().root.) 并没有给我一个对象。
按钮对我不起作用,我不知道为什么。
似乎有一个问题,我没有根对象,但为什么。在我尝试使用仪表板之前它就起作用了。
我已经尝试包含来自 ScreenManager Class 的方法,但我无法调用
并从仪表板 class 中调用方法,该函数。
python 文件:
from kivy.uix.screenmanager import ScreenManager, Screen
from kivy.app import App
class DashboardScreen(Screen):
def __init__(self, **kwargs):
super(DashboardScreen, self).__init__(**kwargs)
# Initialize Target Container
App.get_running_app().root.get_character_selection_screen()
class MyScreenManager(ScreenManager):
def __init__(self, **kwargs):
super(MyScreenManager, self).__init__(**kwargs)
self.add_widget(DashboardScreen(name='dashboard'))
def get_character_selection_screen(self):
pass
class MatrixApp(App):
def build(self):
return MyScreenManager()
if __name__ == '__main__':
MatrixApp().run()
Kivy 文件:
<DashboardScreen>:
BoxLayout:
orientation: "vertical"
Label:
text: "test"
错误信息
AttributeError: 'NoneType' 对象没有属性
'get_character_selection_screen'
缩进可能乱七八糟,因为我试着把它上传到这里。
尝试使用时钟安排它,以确保应用程序和小部件已准备就绪
from kivy.uix.screenmanager import ScreenManager, Screen
from kivy.app import App
from kivy.clock import Clock
class DashboardScreen(Screen):
def __init__(self, **kwargs):
super(DashboardScreen, self).__init__(**kwargs)
Clock.schedule_once(self.after_init)
def after_init(self, dt):
App.get_running_app().root.get_character_selection_screen()
我尝试在按下按钮后调用 Screenmanager 上的函数。但是调用 (App.get_running_app().root.) 并没有给我一个对象。
按钮对我不起作用,我不知道为什么。
似乎有一个问题,我没有根对象,但为什么。在我尝试使用仪表板之前它就起作用了。
我已经尝试包含来自 ScreenManager Class 的方法,但我无法调用 并从仪表板 class 中调用方法,该函数。
python 文件:
from kivy.uix.screenmanager import ScreenManager, Screen
from kivy.app import App
class DashboardScreen(Screen):
def __init__(self, **kwargs):
super(DashboardScreen, self).__init__(**kwargs)
# Initialize Target Container
App.get_running_app().root.get_character_selection_screen()
class MyScreenManager(ScreenManager):
def __init__(self, **kwargs):
super(MyScreenManager, self).__init__(**kwargs)
self.add_widget(DashboardScreen(name='dashboard'))
def get_character_selection_screen(self):
pass
class MatrixApp(App):
def build(self):
return MyScreenManager()
if __name__ == '__main__':
MatrixApp().run()
Kivy 文件:
<DashboardScreen>:
BoxLayout:
orientation: "vertical"
Label:
text: "test"
错误信息 AttributeError: 'NoneType' 对象没有属性 'get_character_selection_screen'
缩进可能乱七八糟,因为我试着把它上传到这里。
尝试使用时钟安排它,以确保应用程序和小部件已准备就绪
from kivy.uix.screenmanager import ScreenManager, Screen
from kivy.app import App
from kivy.clock import Clock
class DashboardScreen(Screen):
def __init__(self, **kwargs):
super(DashboardScreen, self).__init__(**kwargs)
Clock.schedule_once(self.after_init)
def after_init(self, dt):
App.get_running_app().root.get_character_selection_screen()