我正在尝试添加按钮动态屏幕。我运行应用程序时出现以下错误。请帮我解决这个问题。你知道吗
Traceback (most recent call last): File "main.py", line 174, in screenManager.add_widget( HomeScreen( name = 'homeScreen' ) ) File "main.py", line 162, in init self.add_widget(btn) File "/Applications/Kivy.app/Contents/Resources/kivy/kivy/uix/floatlayout.py", line 111, in add_widget pos=self._trigger_layout, AttributeError: 'HomeScreen' object has no attribute '_trigger_layout'
这是我的主.py你知道吗
class HomeScreen(Screen):
def __init__(self, **kwargs):
for i in range(80):
btn = Button(text=str(i), size=(90, 90), size_hint=(None, None))
self.add_widget(btn)
# Screen Manager
screenManager = ScreenManager( transition = FadeTransition() )
# Add all screens to screen manager
#screenManager.add_widget( UsernameScreen( name = 'usernameScreen' ) )
#screenManager.add_widget( PasswordScreen( name = 'passwordScreen' ) )
#screenManager.add_widget( LevelTwoScreen( name = 'levelTwoScreen' ) )
#screenManager.add_widget( LevelTwoScreen( name = 'levelThreeScreen' ) )
screenManager.add_widget( HomeScreen( name = 'homeScreen' ) )
class ThreeLevelAuthApp(App):
def build(self):
return screenManager
if __name__ == '__main__':
ThreeLevelAuthApp().run()
kivy文件
<HomeScreen>:
ScrollView:
size_hint: None, None
size: 400, 400
pos_hint: { 'center_x': 0.5,'center_y': 0.5 }
do_scroll_x: False
GridLayout:
cols: 6
padding: 20
spacing: 20
size_hint: None, None
width: 400
让我们从
__init__
开始:虽然这看起来很好,并且在创建实例时调用,但是缺少一个基本的东西
super()
。首先需要super()
来初始化Screen
,这样它就拥有了所有必需的变量和方法,使它成为具有真实行为的类,从而使您能够真正继承行为。你知道吗请注意,} ,如果您不使用这样做的布局,您将需要处理诸如定位和/或大小调整之类的附加内容。你知道吗
Screen
本身是一个^{相关问题 更多 >
编程相关推荐