我的应用程序是一个屏幕管理器。根据具体情况,我希望应用程序打开时活动屏幕为“屏幕1”或“屏幕2”。我该怎么做才是最优雅的方式呢?我认为这和在初始化应用程序时更改current
属性一样简单。可悲的是,这行不通。以下是我应该做的:
在主.py公司名称:
MyApp(App):
def build(self):
return Builder.load_file("MyApp.kv")
def __init__(self, **kwargs):
super(MyApp, self).__init__(**kwargs)
if foo: # Here's the problem:
self.root.current = "Screen 1"
else:
self.root.current = "Screen 2"
在千伏公司名称:
^{pr2}$但它没有。抛出以下错误:
self.root.current = "Screen 1"
AttributeError: 'NoneType' object has no attribute 'current'
我的猜测是,在设置root
之前,我将current
属性设置为early。我的想法是1)为MyApp创建一个属性var,2)将current
设置为该属性,3)在init方法中更改该属性。这是一个很大的努力和代码混乱只是改变一个屏幕上的初始化。在
我该怎么做?提前谢谢你!在
这只是因为您没有指定
self.root
对象。为什么您需要在__init__
期间更改屏幕?您应该使用build
函数。在我的例子:
在
self.root.cureent_screen
对象可见之前,self.root.cureent_screen
属性将被更改相关问题 更多 >
编程相关推荐