如何在.kv文件中按钮的on_press事件中隐藏画布和矩形
Posted
技术标签:
【中文标题】如何在.kv文件中按钮的on_press事件中隐藏画布和矩形【英文标题】:how to hide canvas and rectangle in on_press event of Button in .kv file 【发布时间】:2018-07-05 20:01:39 【问题描述】:我在 kivy 中创建了一个登录屏幕,我想在按下按钮后隐藏或禁用画布和矩形,请帮助我。这是我的代码
: 名称:“cany” 画布之前: 颜色: RGBA:1,1,1,1 长方形: 尺寸:self.size pos: self.pos 来源:'rect4190.png' 标签: id:user_lbl 文本:“用户名:” 颜色:.9,.1,.1,1 位置:40,400
TextInput: id:username_txt size: cm(4),cm(0.66) pos: 125,437 write_tab: False multiline: False Label: id:pass_lbl text: 'Password:' color: .9, 0.12, .1, 1 pos: 40,350 TextInput: id:password_txt size: cm(4),cm(0.66) pos: 125,387 write_tab: False multiline: False Button: id:btn_login size: cm(2.33),cm(0.66) text: 'Login' pos: 160,200 focus: True on_press: root.validate(username_txt.text,password_txt.text) user_lbl.opacity = 0 pass_lbl.opacity = 0 username_txt.opacity = 0 password_txt.opacity = 0 btn_login.opacity = 0
【问题讨论】:
【参考方案1】:在你的 python 文件中:
from kivy.properties import NumericProperty
在 Python 文件的 Login 类中:
canvas_opacity = NumericProperty(1, rebind=True)
def vanish_canvas(self):
self.canvas_opacity = 0
在你的 kv 文件中,
<LoginScreen>:
name: "cany"
canvas.before:
Color:
rgba: 1,1,1, root.canvas_opacity
Rectangle:
size: self.size
pos: self.pos
source: 'rect4190.png'
Button:
text: 'clear canvas'
on_press: root.clear_canvas()
这样做并没有删除图像,而是使相关画布中的所有内容都变得不可见。
Canvas 确实有一个内置的清除功能,但它似乎会清除所有内容,包括您不想删除的小部件。
【讨论】:
谢谢,我明白了,但是为什么我不能用向下的计数器来淡化它呢? 看来您必须使用 kivy 的动画功能才能使淡入淡出成为“动画”。 See more here以上是关于如何在.kv文件中按钮的on_press事件中隐藏画布和矩形的主要内容,如果未能解决你的问题,请参考以下文章
我可以在 .kv 文件中定义小部件并在 .py 文件中引用它吗?