我在用kivy做实验,我总是从下面的代码中得到分段错误,并且无法解决它。我怀疑我对python类的理解有问题。在
经反复试验发现评论
#p.open()
停止问题,但我无法解决,也无法理解错误。 谢谢
错误:
Fatal Python error: (pygame parachute) Segmentation Fault
Python代码
class popper(Popup):
yazi= StringProperty("notsetyet")
def __init__(self, texty):
self.yazi = text
print texty
class boxxy(BoxLayout):
...
def on_press(self):
p = popper("test_value")
p.open()
...
.kv文件
^{pr2}$
我不知道到底是什么导致了你的问题,但你的代码中有多个错误。另外,最好能提供一个完整的最小工作示例,这样可以使调试更加容易。在
主要的错误(这很可能导致这种情况)是您没有在您的
__init__
定义中调用super(Popper, self).__init__(**kwargs)
(这可能还需要用def __init__(texty, **kwargs)
来定义来捕获额外的参数)。这是至关重要的,因为正常的__init__
设置了所有正常的小部件和弹出行为。在你的意思是
self.yazi = text
,而你的意思是self.yazi = texty
。在最后,类名以大写字母开头是正常的Python约定。虽然这通常只是一个风格指南,不是一个要求,但我认为kv语言有时依赖于它,所以如果你不这样做,你可能会遇到撞车或奇怪的行为。在
相关问题 更多 >
编程相关推荐