Android 如何使用remove_widget()函数?
我有这个密码Android 如何使用remove_widget()函数?,android,python,python-3.x,kivy,kivy-language,Android,Python,Python 3.x,Kivy,Kivy Language,我有这个密码 from kivy.app import App from kivy.uix.boxlayout import BoxLayout from kivy.properties import ObjectProperty class Temp(BoxLayout): def __init__(self, iid): BoxLayout.__init__(self) self.id = str(iid) def remove_cont
from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.properties import ObjectProperty
class Temp(BoxLayout):
def __init__(self, iid):
BoxLayout.__init__(self)
self.id = str(iid)
def remove_content(self, iid):
#How me need use remove_widget() function?
#self.ids['tmp'].remove_widget(?)
class ScreenApp(BoxLayout):
def __init__(self):
BoxLayout.__init__(self)
self.idsum = 0
self.idsum+=1
self.ids['contents'].add_widget(Temp(iid = self.idsum))
self.idsum+=1
self.ids['contents'].add_widget(Temp(iid = self.idsum))
def add_content(self):
self.idsum+=1
self.ids['contents'].add_widget(Temp(iid = self.idsum))
class MainApp(App):
def build(self):
return ScreenApp()
if __name__ == "__main__":
MainApp().run()
还有这个
<Temp@BoxLayout>
id: tmp
Button:
id: idti
text: "-"
on_press: root.remove_content(id)
Label:
id: idlbl
text: "Temp"
<ScreenApp>:
BoxLayout:
orientation: "vertical"
BoxLayout:
id: contents
orientation: "vertical"
Button:
text: "+"
on_press: root.add_content()
id:tmp
按钮:
id:idti
正文:“-”
按:根目录。删除内容(id)
标签:
id:idlbl
文本:“临时”
:
盒子布局:
方向:“垂直”
盒子布局:
id:目录
方向:“垂直”
按钮:
正文:“+”
按:root.add\u content()
我想删除一个按钮点击小部件和底部的小部件上升到远程小部件TM最没有留下一个空白的地方。先谢谢你。
要删除弹出窗口,请多说几句。使用
self.ids.contents.remove\u小部件(实例)
删除对象的实例。有关详细信息,请参阅说明和示例
kv文件
替换为类规则:
id:tmp
,因为它不需要root.remove_content(id)
替换为app.root.remove_content(root)
,因为我们正在将该方法移到类ScreenApp()中,因为我们已经有了add_content()
方法id
作为参数传递,而是传递root
即要删除的Temp
对象的实例text:'Temp'
替换为root.text
进行可视化BoxLayout:
,:
,因为它已经是一个BoxLayout,不需要另一个BoxLayout,即嵌套的BoxLayoutstext
作为类Temp()
的构造函数方法的参数self.text=text
Temp
对象时添加了text='Temp'+str(self.idsum)
#:kivy 1.11.0
:
文本:“临时”
按钮:
id:idti
正文:“-”
按:app.root。删除内容(root)
标签:
id:idlbl
text:root.text
:
方向:“垂直”
盒子布局:
id:目录
方向:“垂直”
按钮:
正文:“+”
按:root.add\u content()
输出
from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
class Temp(BoxLayout):
def __init__(self, iid, text, **kwargs):
super(Temp, self).__init__(**kwargs)
self.id = str(iid)
self.text = text
class ScreenApp(BoxLayout):
def __init__(self):
BoxLayout.__init__(self)
self.idsum = 0
self.idsum += 1
self.ids['contents'].add_widget(Temp(iid=self.idsum, text='Temp' + str(self.idsum)))
self.idsum += 1
self.ids['contents'].add_widget(Temp(iid=self.idsum, text='Temp' + str(self.idsum)))
def add_content(self):
self.idsum+=1
self.ids['contents'].add_widget(Temp(iid=self.idsum, text='Temp' + str(self.idsum)))
def remove_content(self, instance):
self.ids.contents.remove_widget(instance)
class MainApp(App):
def build(self):
return ScreenApp()
if __name__ == "__main__":
MainApp().run()
#:kivy 1.11.0
<Temp>:
text: 'Temp'
Button:
id: idti
text: "-"
on_press: app.root.remove_content(root)
Label:
id: idlbl
text: root.text
<ScreenApp>:
orientation: "vertical"
BoxLayout:
id: contents
orientation: "vertical"
Button:
text: "+"
on_press: root.add_content()