【发布时间】:2014-03-12 20:17:50
【问题描述】:
我的问题是,当我想运行上面的示例时,它不起作用。 发生的情况是,弹出窗口出现一次,带有文本“test”,然后当我再次单击该按钮时,它会显示错误:
File "/home/river/android-sdk/workplace/python-forandroid/build/pythoninstall/lib/python2.7/site-packages/kivy/uix/layout.py", line 76, in add_widget
File "/home/river/android-sdk/workplace/python-for-android/build/python-install/lib/python2.7/site-packages/kivy/uix/widget.py", line 314, in add_widget
kivy.uix.widget.WidgetException: Cannot add <kivy.uix.boxlayout.BoxLayout object at 0x60a25a78>, it already has a parent <kivy.uix.boxlayout.BoxLayout object at 0x60e2bae8>
我认为原因是每次点击后我都必须删除小部件。 (我不知道怎么做)
import kivy
import kivy.uix.label
import kivy.app
import kivy.lang.builder
textshow = BoxLayout()
def answer(answer):
text = Label(text=str(answer))
textshow.add_widget(text)
Builder.load_string('''
<main>:
Button:
on_release: root.show()
''')
class main(BoxLayout):
def show(self):
answer("test")
popup = Popup(content=textshow)
popup.open()
class apprun(App):
def build(self):
return main()
apprun().run()
如果你回答这个问题,请显示整个代码。
编辑:这是一个示例脚本,我的真实脚本有 2 个类 Screen1,并且 textshow = BoxLayout() 类
Inclements 答案有效,但每次单击按钮都会产生另一个文本显示!请帮忙!
【问题讨论】: