在我的Kivy应用程序中,我需要一个Button
,它将更改屏幕管理器的当前屏幕。但是,我想确保用户不会意外按下它。因此,我设置了on_release()
事件,并根据documentation设置。我应该能够设置属性min_state_time
(默认值为0.035秒),该属性应该仅在按钮在指定时间段(此处为2秒)处于“关闭”状态后启用on_release()
事件
这是Button
的class
:
class EscapeButton(ButtonBehavior, Label):
def __init__(self, **kwargs):
super(EscapeButton, self).__init__(**kwargs)
# I'm changing min_state_time:
self.min_state_time = 2.0
def on_press(self):
self.background_color = (1,1,1,0.5)
def on_release(self):
self.background_color = (0,0,0,0)
这是kv
文件中的同一个class
<EscapeButton>:
#min_state_time: 2.0 - I tried to set it like this but it didn't work
background_color: (0,0,0,0)
canvas.before:
Color:
rgba: self.background_color
Rectangle:
pos: self.pos
size: self.size
font_size: '16sp'
color: (1,1,1,0.5)
在kv
中Button
的实例:
EscapeButton:
#min_state_time: 2.0 - I also tried here
text:'X'
on_release: root.escape_test()
以及main.py
中的函数:
def escape_test(self):
sm.current = 'settings'
所以,问题是,尽管min_state_time
的值发生了变化(我检查了它),但它并没有改变按钮行为中的任何内容,因为on_release()
被触发,而不管该值是什么(即立即)。有人知道这是怎么回事吗
目前没有回答
相关问题 更多 >
编程相关推荐