#python #kivy
#python #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-")
Комментарии:
1. Как насчет того, чтобы не иметь двух кнопок, а только одну? Вы можете либо изменить кнопку, чтобы отобразить нужную метку, либо удалить и добавить кнопки, когда это необходимо.
2. Хорошо, как я могу переключаться между ними?
3. Одна вещь, о которой нужно знать: свойство для
Button
включения / выключения на самом делеdisabled
нетenabled
.
Ответ №1:
Вместо двух кнопок вы можете иметь только одну кнопку и переключаться при необходимости:
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. Вы, конечно, также можете просто использовать кнопку и изменять их значения в коде.