Feb-14-2019, 01:20 PM
(This post was last modified: Feb-14-2019, 01:20 PM by TheStraying11.)
I'm making a hidden object game, and I decided to use Kivy because I wanted to try it out.
One of the triggers for finding one of the hidden objects is clicking on the text "Not here" after the player has clicked this button, I want the on_press function to be changed so that the button no longer does anything. when I run my current code I get the error 'AssertionError: None is not callable' in sdl2
here is my current code, the place I assign the dummy function 'nothing()' is in the clk() function
One of the triggers for finding one of the hidden objects is clicking on the text "Not here" after the player has clicked this button, I want the on_press function to be changed so that the button no longer does anything. when I run my current code I get the error 'AssertionError: None is not callable' in sdl2
here is my current code, the place I assign the dummy function 'nothing()' is in the clk() function
from kivy.app import App from kivy.uix.button import Button from kivy.uix.boxlayout import BoxLayout class myLayout(BoxLayout): def __init__(self, **kwargs): super(myLayout, self).__init__(**kwargs) global btn btn = Button(text = "Not here") btn.bind(on_press=self.clk) self.add_widget(btn) def nothing(self): do = 'nothing' def clk(self, obj): print("you found one") btn.bind(on_press=self.nothing()) class GameApp(App): def build(self): mL = myLayout() self.title = "We don't have any chemical weapons" self.icon = "Hussein.ico" return mL if __name__ == "__main__": GameApp().run()here's the full error
Error:[INFO ] [Base ] Leaving application in progress...
Traceback (most recent call last):
File "C:/Users/youre/Desktop/project/main.py", line 28, in <module>
GameApp().run()
File "C:\Program Files\Python37\lib\site-packages\kivy\app.py", line 826, in run
runTouchApp()
File "C:\Program Files\Python37\lib\site-packages\kivy\base.py", line 502, in runTouchApp
EventLoop.window.mainloop()
File "C:\Program Files\Python37\lib\site-packages\kivy\core\window\window_sdl2.py", line 727, in mainloop
self._mainloop()
File "C:\Program Files\Python37\lib\site-packages\kivy\core\window\window_sdl2.py", line 460, in _mainloop
EventLoop.idle()
File "C:\Program Files\Python37\lib\site-packages\kivy\base.py", line 340, in idle
self.dispatch_input()
File "C:\Program Files\Python37\lib\site-packages\kivy\base.py", line 325, in dispatch_input
post_dispatch_input(*pop(0))
File "C:\Program Files\Python37\lib\site-packages\kivy\base.py", line 231, in post_dispatch_input
listener.dispatch('on_motion', etype, me)
File "kivy\_event.pyx", line 707, in kivy._event.EventDispatcher.dispatch
File "C:\Program Files\Python37\lib\site-packages\kivy\core\window\__init__.py", line 1360, in on_motion
self.dispatch('on_touch_down', me)
File "kivy\_event.pyx", line 707, in kivy._event.EventDispatcher.dispatch
File "C:\Program Files\Python37\lib\site-packages\kivy\core\window\__init__.py", line 1376, in on_touch_down
if w.dispatch('on_touch_down', touch):
File "kivy\_event.pyx", line 707, in kivy._event.EventDispatcher.dispatch
File "C:\Program Files\Python37\lib\site-packages\kivy\uix\widget.py", line 460, in on_touch_down
if child.dispatch('on_touch_down', touch):
File "kivy\_event.pyx", line 707, in kivy._event.EventDispatcher.dispatch
File "C:\Program Files\Python37\lib\site-packages\kivy\uix\behaviors\button.py", line 151, in on_touch_down
self.dispatch('on_press')
File "kivy\_event.pyx", line 703, in kivy._event.EventDispatcher.dispatch
File "kivy\_event.pyx", line 1214, in kivy._event.EventObservers.dispatch
File "kivy\_event.pyx", line 1138, in kivy._event.EventObservers._dispatch
File "C:/Users/youre/Desktop/project/main.py", line 19, in clk
btn.bind(on_press=self.nothing())
File "kivy\_event.pyx", line 419, in kivy._event.EventDispatcher.bind
AssertionError: None is not callable