0
如何从该窗口小部件中删除添加的窗口小部件。我有什么意义吗?希望是的,hehehe ...如何删除该小部件中添加的小部件?
无论如何,简单的代码只包含按钮和标签。 我的目标是,如果我点击添加按钮,它会显示一个标签&按钮的小部件。如果我想删除小部件,我只需点击该小部件中的关闭按钮即可。
但它没有关闭,它已经两天了,我不能找到什么问题,它不给我任何错误。
谢谢你们。
from kivy.uix.floatlayout import FloatLayout
from kivy.uix.widget import Widget
from kivy.app import App
from kivy.uix.screenmanager import ScreenManager, Screen
from kivy.lang import Builder
kv_file = Builder.load_string('''
<Screen1>:
BoxLayout:
Button:
on_release: root.add_button(True)
text: 'ADD'
size_hint: .2,.2
<Layout1>:
BoxLayout:
pos: self.x,300
size_hint: .5,.3
Label:
text: 'THIS IS A ADDED WIDGET'
Button:
text: 'Close'
on_release: root.closeBTN()
''')
class Layout1(FloatLayout):
def closeBTN(self):
AddWidget_Layout1().addEmps(True)
class AddWidget_Layout1(Widget):
def __init__(self, **kwargs):
super(AddWidget_Layout1,self).__init__(**kwargs)
self.count = 0
self.layout1 = Layout1()
def addEmps(self,xadd):
if xadd == 1:
self.add_widget(self.layout1)
elif xadd == True:
self.remove_widget(self.layout1)
class Screen1(Screen,AddWidget_Layout1):
def add_button(self,*args):
self.count += 1
print
if self.count == 1:
self.addEmps(1)
class projectApps(App):
def build(self):
return SM
SM = ScreenManager()
SM.add_widget(Screen1())
if __name__ == "__main__":
projectApps().run()
这里的想法是,而不是为表单创建另一个屏幕,生病只是创建窗口小部件表格。 但事情是,如果变量xadd是真的,小部件不会被删除。如果它在哪里显示错误/错误,我可能会找到解决方案。但没有错误显示。 – azura
@azura - 看看我的anwser,1和True在Python中使用False删除布局... –
伟大的工作,这就是我需要的,甜蜜....之前,我确实改变了真正的假,但它没有工作。我没有注意到self.parent,我需要检查有关self.parent的Python文件..即时通讯只是徘徊如何python知道功能addEmps位于?其中班级/家长。生病肯定需要检查python文档...太棒了!谢谢Yoav! – azura