Почему я получаю эту ошибку AttributeError: у объекта 'NoneType' нет атрибута 'remove_widget', когда я пытаюсь удалить целевой виджет?
from kivy.config import Config
Config.set('graphics', 'width', '800')
Config.set('graphics', 'height', '600')
from kivy.app import App
from kivy.clock import Clock
from kivy.core.text import LabelBase
from kivy.core.window import Window
from kivy.uix.widget import Widget
from kivy.uix.label import Label
from kivy.uix.boxlayout import BoxLayout
from kivy.graphics import Rectangle
from kivy.lang import Builder
from kivy.config import Config
import random, time
from kivy.animation import Animation
from kivy.properties import ListProperty
from kivy.properties import NumericProperty, ReferenceListProperty, ObjectProperty
from kivy.core.window import Window
import random
a = Builder.load_string('''
<BattleField>:
BoxLayout:
orientation: 'vertical'
<Target>:
canvas:
Color:
rgba: 1, 0, 0, 1 #red
Rectangle:
pos: self.pos
size: self.size
''')
class BattleField(Widget):
def __init__(self, **kwargs):
super(BattleField, self).__init__(**kwargs)
appear_time = random.randint(2,4)
Clock.schedule_interval(self.appear_target, 1)
def appear_target(self, *args):
c = Target(pos=(700,0))
self.add_widget(c)
class Target(Widget):
velocity_x = NumericProperty(-10)
velocity_y = NumericProperty(0)
def __init__(self, **kwargs):
super(Target, self).__init__(**kwargs)
Clock.schedule_interval(self.update, 1/60.)
def update(self, *args):
self.x += self.velocity_x #velocity[0]
self.y += self.velocity_y #velocity[1]
if self.x < 0:
self.parent.remove_widget(self)
class ClockApp(App):
def build(self):
return BattleField()
if __name__ == '__main__':
ClockApp().run()
Я хочу удалить виджет «Цель», который представляет собой красный прямоугольник, когда он выходит из окна, но эта часть вызывает ошибку, которую я не знаю, почему.
if self.x < 0:
self.parent.remove_widget(self)
ПожалуйстаПомоги мне.Расширенное спасибо.