gpt4 book ai didi

python - 如何删除 kivy 中的小部件?

转载 作者:太空狗 更新时间:2023-10-30 02:02:48 25 4
gpt4 key购买 nike

我正在尝试添加这些小部件,但没有成功。我正在使用 kv 语言和绑定(bind)功能。使用下面的代码可以动态添加按钮,但不能删除它们。

.py

class PrimeiroScreen(Screen):
def __init__(self, **kwargs):
self.name = 'um'
super(Screen,self).__init__(**kwargs)


def fc2(self):
btn = Button(text="Botão",size_hint=(.1,.1))
self.ids.grade2.add_widget(btn)
btn.bind(on_press=self.printa)

def printa(self,*args):
#btn2 = Button(text="Btn2",size_hint=(.1,.1))#I can add another btn succesfully
self.ids.grade2.add_widget(btn2)#but I can do the same by this way
self.remove_widget(btn)
grade2.remove_widget(self.btn)

和.kv

<RootScreen>:
PrimeiroScreen:

<PrimeiroScreen>:
GridLayout:
cols: 1
size_hint: (.5,1)
id: grade
Button:
text: "hi!"
on_press: root.fc2()

StackLayout:
orientation: 'bt-rl'
GridLayout:
cols: 2
size_hint: (.5,1)
id: grade2

有人知道我犯的错误吗? Python 向我显示以下消息:

self.remove_widget(btn)
NameError: global name 'btn' is not defined

最佳答案

改变
btn = Button(text="Botão",size_hint=(.1,.1))

self.btn = Button(text="Botão",size_hint=(.1,.1))
因此,您将其设为类属性。

然后像这样去掉
self.remove_widget(self.btn)

关于python - 如何删除 kivy 中的小部件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38491124/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com