Skip to content Skip to sidebar Skip to footer

Attributeerror 'button' Object Has No Attribute Scrlfbtn

from kivy.app import App from kivy.uix.boxlayout import BoxLayout from kivy.uix.label import Label from kivy.core.window import Window from kivy.uix.scrollview import ScrollView fr

Solution 1:

Your code has several errors and bad programming practices:

  • if you declare variables that are inside a class and outside any method of the class will be class variables and not attributes of the class, so it is not a good practice to do so if you want to use later self, all that code must be within a method of a class.

  • on_someproperty wait as parameter a function that receives parameters, in your case sas() does not receive them so the solution is to use a lambda method.


from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.label import Label
from kivy.uix.scrollview import ScrollView
from kivy.effects.scroll import ScrollEffect
from kivy.uix.button import Button

classBSGameMain:
    def__init__(self):
        self.blmain = BoxLayout(orientation = 'vertical') # MainBoxLayout init

        self.scrlFBtns = ScrollView(effect_cls = 'ScrollEffect')

        self.blbtns = BoxLayout(
            orientation = 'vertical',
            size_hint_y = None )

        self.blbtns.bind(minimum_height = self.blbtns.setter('height'))
        self.scrlFBtns.add_widget(self.blbtns)

        for i inrange(2):
            self.blbtns.add_widget(Button(
                text='asd',
                size_hint_y = None,
                height = 40,
                on_press = lambda *args: self.sas()))

        lblmain = Label(text = 'asd')
        self.blmain.add_widget(lblmain)
        self.blmain.add_widget(self.scrlFBtns)

    defsas(self):
        self.scrlFBtns.remove_widget(self.blbtns)


classBSApp(App):
    defbuild(self):
        game = BSGameMain()
        return game.blmain

if __name__ == "__main__":
    BSApp().run()

Post a Comment for "Attributeerror 'button' Object Has No Attribute Scrlfbtn"