[英]How can I remove a button in kivy
我是 kivy 的新手,我想讓“dropbutton”和“startbutton”在按下“startbutton”時消失,但我不知道該怎么做。
我嘗試了 self.remove_widget(self.startbutton) 但它給了我一個錯誤:“ AttributeError: 'MainApp' object has no attribute 'remove_widget' “
from kivy.app import App
from kivy.uix.dropdown import DropDown
from kivy.uix.button import Button
from kivy.lang import Builder
from kivy.uix.boxlayout import BoxLayout
import random
Builder.load_string("""
<CustomDropDown>
Button:
text: "Nobara"
size_hint_y: None
height: 44
on_release: root.select("Nobara")
Button:
text: "Maki"
size_hint_y: None
height: 44
on_release: root.select("Maki")
""")
class CustomDropDown(DropDown):
pass
class MainApp(App):
def build(self):
startbutton = Button(text='Start',
size_hint=(.2, .2),
pos_hint={'center_x': .5, 'center_y': .5})
startbutton.bind(on_press=self.on_press_button)
dropbutton = Button(text='Karakter',
size_hint=(.2, .2),
pos_hint={'center_x': .50, 'center_y': .5})
dropdown = CustomDropDown()
dropbutton.bind(on_release=dropdown.open)
dropdown.bind(on_select = lambda instance, x : setattr(dropbutton, 'text', x))
dropdown.bind(on_select = lambda instance, x : karaktervalasztas(x))
boxlayout = BoxLayout()
boxlayout.add_widget(startbutton)
boxlayout.add_widget(dropbutton)
return boxlayout
def on_press_button(self, instance):
### the code to remove both the startbutton and the dropbutton
start()
只需保留對這些按鈕的引用,並使用這些引用來刪除它們。 在你的build()
方法中:
def build(self):
self.startbutton = Button(text='Start',
size_hint=(.2, .2),
pos_hint={'center_x': .5, 'center_y': .5})
self.startbutton.bind(on_press=self.on_press_button)
self.dropbutton = Button(text='Karakter',
size_hint=(.2, .2),
pos_hint={'center_x': .50, 'center_y': .5})
dropdown = CustomDropDown()
self.dropbutton.bind(on_release=dropdown.open)
dropdown.bind(on_select=lambda instance, x: setattr(self.dropbutton, 'text', x))
dropdown.bind(on_select=lambda instance, x: karaktervalasztas(x))
boxlayout = BoxLayout()
boxlayout.add_widget(self.startbutton)
boxlayout.add_widget(self.dropbutton)
return boxlayout
然后你的on_press_button()
可以是:
def on_press_button(self, instance):
self.root.remove_widget(self.startbutton)
self.root.remove_widget(self.dropbutton)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.