#python #kivy
#python #kivy
Вопрос:
В принципе, у меня есть кнопка, и когда вы нажимаете ее, и как только выполняется определенное условие, другая кнопка должна «исчезнуть» (путем уменьшения ее size_hint до 0). Но это не работает и говорит мне, что объект ‘NormalGame’ не имеет атрибута ‘v1’. Любая помощь приветствуется, спасибо!
Вот кнопка в файле kv:
<NormalGame>:
name: "ngame"
FloatLayout:
Button:
id: v1
pos_hint: {"x": 0.66, "y": 0.725}
size_hint: (0.01, 0.01)
text: "V"
on_release:
root.btn_action_v1()
И вот файл py:
class NormalGame(Screen):
def btn_action_v1(self):
v1 = self.ids.v1
if players_combination == colour_combination:
print("you won")
else:
players_combination.clear()
self.v1.size_hint = 0, 0
Вот код ошибки:
Traceback (most recent call last):
File "c:/Users/edgar/Desktop/python projects/flappy bird/main.py", line 725, in <module>
MyMainApp().run()
File "C:UsersedgarAppDataLocalProgramsPythonPython37libsite-packageskivyapp.py", line 855, in run
runTouchApp()
File "C:UsersedgarAppDataLocalProgramsPythonPython37libsite-packageskivybase.py", line 504, in runTouchApp
EventLoop.window.mainloop()
File "C:UsersedgarAppDataLocalProgramsPythonPython37libsite-packageskivycorewindowwindow_sdl2.py", line 747, in mainloop
self._mainloop()
File "C:UsersedgarAppDataLocalProgramsPythonPython37libsite-packageskivycorewindowwindow_sdl2.py", line 479, in _mainloop
EventLoop.idle()
File "C:UsersedgarAppDataLocalProgramsPythonPython37libsite-packageskivybase.py", line 342, in idle
self.dispatch_input()
File "C:UsersedgarAppDataLocalProgramsPythonPython37libsite-packageskivybase.py", line 327, in dispatch_input
post_dispatch_input(*pop(0))
File "C:UsersedgarAppDataLocalProgramsPythonPython37libsite-packageskivybase.py", line 293, in post_dispatch_input
wid.dispatch('on_touch_up', me)
File "kivy_event.pyx", line 707, in kivy._event.EventDispatcher.dispatch
File "C:UsersedgarAppDataLocalProgramsPythonPython37libsite-packageskivyuixbehaviorsbutton.py", line 179, in on_touch_up
self.dispatch('on_release')
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 1098, in kivy._event.EventObservers._dispatch
File "C:UsersedgarAppDataLocalProgramsPythonPython37libsite-packageskivylangbuilder.py", line 64, in custom_callback
exec(__kvlang__.co_value, idmap)
File "c:UsersedgarDesktoppython projectsflappy birdrls.kv", line 139, in <module>
root.btn_action_v1()
File "c:/Users/edgar/Desktop/python projects/flappy bird/main.py", line 684, in btn_action_v1
self.v1.size_hint = 0, 0
AttributeError: 'NormalGame' object has no attribute 'v1'
Ответ №1:
Атрибута the нет v1
NormalGame
, но есть созданная вами локальная переменная v1
. Попробуйте изменить:
self.v1.size_hint = 0, 0
Для:
v1.size_hint = 0, 0