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-")
解决方案
您只能有一个按钮并在必要时切换,而不是有两个按钮:
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 并在代码中更改它们的值。
推荐阅读
- c# - Visual Studio 2019 社区版是否支持 MVC 5 项目?
- spring - Spring Data REST 端点提供 404 状态码
- oracle-apex - 在 oracle apex 中导出为 PDF
- c# - 为什么“你想如何打开这个文件?” 出现在某些计算机上,而不是其他计算机上
- php - PHP / Laravel:在保存()之后检索模型的新信息
- python-3.x - 无法使用代理使用 python 连接到 Documentdb
- javascript - 如何替换 JSON 中键中的空格
- django - 动态计算模型字段?
- python - 无法通过 pip 在 Python 上安装 pygame(Windows 10)
- regex - 通过 db2-luw 上的 xmlquery 使用正则表达式执行更新语句时出现 SQL 错误