2017-10-07 54 views
0

爲什麼此代碼會生成以下錯誤?將小部件結果添加到「AttributeError:'HomeScreen'對象沒有屬性'_trigger_layout'」

AttributeError: 'HomeScreen' object has no attribute '_trigger_layout'

class HomeScreen(BoxLayout): 

    def __init__(self): 

     print "homescreen" 

     topbar = BoxLayout(spacing = -2, size = (64, 64), size_hint = (1, None)) 

     back_button = Button(size = (32, 64), size_hint = (None, 1), text = '>', font_size = 15 + 0.015 * self.height, background_color = (0.239, 0.815, 0.552, 1)) 
     home_button = Button(text = "HOME", font_size = 10 + 0.015 * self.width, background_color = (0.239, 0.815, 0.552, 1)) 
     more_button = Button(size = (32, 64), size_hint = (None, 1), text = '...', font_size = 15 + 0.015 * self.height, background_color = (0.239, 0.815, 0.552, 1)) 

     topbar.add_widget(back_button) 
     topbar.add_widget(home_button) 
     topbar.add_widget(more_button) 

     self.add_widget(topbar) 

回答

0

因爲已覆蓋init方法,這是必要的。在下面的代碼中,我也覆蓋了init方法,但我也在覆蓋之前調用init方法。

class HomeScreen(BoxLayout): 
    def __init__(self, **kwargs): 
     super(HomeScreen, self).__init__(**kwargs) 
     ... 

from kivy.app import App 
from kivy.uix.slider import Slider 
from kivy.uix.treeview import TreeView, TreeViewNode 
from kivy.uix.button import Button 
from kivy.uix.slider import Slider 
from kivy.uix.label import Label 
from kivy.uix.boxlayout import BoxLayout 
from kivy.lang import Builder 

class HomeScreen(BoxLayout): 
    def __init__(self, **kwargs): 
     super(HomeScreen, self).__init__(**kwargs) 


     print("homescreen") 

     topbar = BoxLayout(spacing = 0, size = (64, 64), size_hint = (1, None)) 

     back_button = Button(size = (32, 64), size_hint = (None, 1), text = '>', font_size = 15 + 0.015 * self.height, background_color = (0.239, 0.815, 0.552, 1)) 
     home_button = Button(text = "HOME", font_size = 10 + 0.015 * self.width, background_color = (0.239, 0.815, 0.552, 1)) 
     more_button = Button(size = (32, 64), size_hint = (None, 1), text = '...', font_size = 15 + 0.015 * self.height, background_color = (0.239, 0.815, 0.552, 1)) 

     topbar.add_widget(back_button) 
     topbar.add_widget(home_button) 
     topbar.add_widget(more_button) 
     self.add_widget(topbar) 


class TestApp(App): 
    def build(self): 
     return HomeScreen() 

if __name__ == '__main__': 
    TestApp().run() 

enter image description here

+0

現在我的按鈕是不可見的,我一個空白屏幕,你知道如何解決這一問題? –

+0

如果我複製並粘貼我的代碼,我會得到上面的內容(請參閱添加的屏幕快照)。你也不明白嗎? – PalimPalim

+0

當我將代碼隔離在調試文件中時,它可以工作。但是,當我將它與已經先進的應用程序集成時,它不會顯示3個按鈕。 –

相關問題