首页 > 解决方案 > Kivy 如何在按钮之间切换

问题描述

我有两个相互重叠的按钮,我希望第一个按钮可见且可点击..

但是由于某种原因,我看到第一个具有第二个逻辑的人可以帮助我吗?

    FloatLayout:
        Button:
            id:1jab
            pos_hint: {"x":0.38,"y":0.843}
            size_hint: 0.02,0.03
            text: "+"
            opacity : 1
            enabled : True
            on_release:
                print("You press plus button")
                app.convert_button_id_in_label_id("1jab")
                app.build_popup()
                self.text = ""
        Button:
            id:1jab-
            pos_hint: {"x":0.38,"y":0.843}
            size_hint: 0.02,0.03
            text: "-"
            opacity : 0
            enabled : False
            on_release:
                print("You press minus button")
                self.click_minus_button("1jab-")

标签: pythonkivy

解决方案


您只能有一个按钮并在必要时切换,而不是有两个按钮:

class TwoButtonLayout(FloatLayout):
    plus = BooleanProperty()
    button_plus = ObjectProperty()
    button_minus = ObjectProperty()

    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        button_plus = ButtonPlus()
        button_minus = ButtonMinus()

    def on_plus(self, instance, plus):
        if plus:
            self.remove_widget(self.button_minus)
            self.add_widget(self.button_plus)
        else:
            self.remove_widget(self.button_plus)
            self.add_widget(self.button_minus)

ButtonPlus 和 ButtonMinus 将是您的按钮的两个类,因此您可以通过 kv 设置它们的样式。当然,您也可以只使用 Button 并在代码中更改它们的值。


推荐阅读