Bind Function To Kivy Button


Answer :

I don't think any of the answers are very clear. Neither explains that problem is that the callback given to on_press gets called with a parameter, the instance of button, so LoginScreen.auth must accept a parameter after the self:

def auth(self, button):     print('button pressed:', instance) 

The problem is not that on_press must be given via Button.bind or that the callback must be a function, it can be a bound method, and the docs cited by other answer and by comments link to ButtonbBhavior which indicates that OP use of on_press in constructor was fine:

self.hello = Button(text="hello", on_press=self.auth) 

would have worked if auth had been as described above.


If you read the Button documentation, the key seems to be to use the bind function:

def callback(instance):     print('The button <%s> is being pressed' % instance.text)  btn1 = Button(text='Hello world 1') btn1.bind(on_press=callback) 

Comments

Popular posts from this blog

Are Regular VACUUM ANALYZE Still Recommended Under 9.1?

Can Feynman Diagrams Be Used To Represent Any Perturbation Theory?